Forms驗證是驗證網路上的使用者的帳號與密碼(也可當內部用)

就是一種網路的使用者的登入的驗證

不像Window的驗證是內部用的

 

一樣去設定Web.Config檔

<configuration>

<system.web>

<authentication mode="Forms">

//這裡設定cookies的名稱,以及沒有權限的人會被導向至myLo.aspx這個登入網頁
      <forms name="myCookies" loginUrl="myLo.aspx"></forms> 
</authentication>

 <authorization>

//讓Welkingunther和Naruto兩個人可以用

//這裡的這兩個人的帳號是指Window作業系統的使用者

//而deny那行是說拒絕所有匿名登入的人,

//(?是代表匿名的人)

//(*是代表所有的人)

//而deny VERB那行是說拒絕所有HTTP用POST連過來的人,POST也可以改成GET

      <allow users="Welkingunther,Naruto">
      <deny users="?"/>

      <deny VERB="POST" users="*">
   </authorization>

</system.web>

</configuration>


=====================================================

上面如果沒有通過授權,會被導向到myLo.aspx這個登入網頁

所以接著就可以在這個網頁寫檢查帳號密碼的程式

我們將會用到System.Web.Security這個NameSpace

 

登入畫面裡面假設有兩個textbox是輸入帳號和輸入密碼的

另外還有一個按鈕是確定

我們先在確定那個按鈕的Click事件裡寫自己要去驗證這個帳號跟密碼的程式後

(比如說檢查textbox1的輸入帳號是不是叫做Naruto阿...等等)

如果驗證通過就寫

FormsAuthentication.RedirectFromLoginPage(textbox1.text, false);

上面那行是說幫通過驗證的使用者導向回他原本要看的網頁

第一個參數textbox1.text傳進去後,可在那個原本要看的網頁裡面寫

User.Identity.Name就可抓到textbox1.text這個值也就是登入者輸入的名字

後面那個false參數是說一個目前的cookies只能給目前的瀏覽器用

如果改成true的話代表他會在"我的文件"這個資料夾產生一個隱藏的Cookies,

讓你就算用多個瀏覽器也可以共用這個cookies,下次再進去網站就不用登入

 

可以再作一個登出的按鈕,然後寫程式在按鈕事件裡

FormsAuthentication.SignOut();
Response.Redirect("myLo.aspx");

這樣就會登出並且把你導回登入畫面

Posted by welkingunther at 痞客邦 PIXNET 留言(0) 引用(0) 人氣()