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");
這樣就會登出並且把你導回登入畫面