1. 程式人生 > >簡單配置authentication,完成基於表單的身份驗證

簡單配置authentication,完成基於表單的身份驗證

驗證使用者身份成功,並登陸後臺admin資料夾裡的admin.aspx後臺管理頁面,否則禁止匿名使用者訪問專案中的admin資料夾裡的任何一個檔案

步驟一:
 在根目錄下的web.config中加入:
  1. <system.web>
  2. <authenticationmode="Forms">
  3.             <formsloginUrl="Login.aspx"defaultUrl="admin/admin.aspx"name=".ASPXFORMSAUTH">
  4.             </forms>
  5. </authentication>
  6. </system.web>

 loginUrl:使用者沒有登入,跳轉到的登入頁面
 defaultUrl:正確登入之後,在沒有指向頁的時候,弄人跳轉的頁面

步驟二:


在admin資料夾下新建一個web.config檔案,並加入以下程式碼 

  1. <system.web>
  2.         <!--拒絕匿名使用者訪問此目錄下的任何檔案-->
  3.         <authorization>
  4.             <denyusers="?"/>
  5.         </authorization>
  6. </system.web>

deny users="?":表示禁止匿名使用者訪問admin目錄下的任何檔案
 到目前為止,只要你訪問admin下的任何檔案,都會自動跳轉到Login.aspx登陸頁面了,要求你先登入,否則別想看到頁面。

步驟三:


在根目錄下,建立Login.aspx登陸頁面(可不是在admin目錄下哦),加兩個textbox控制元件和一個botton控制元件,分別是使用者名稱,密碼,和登陸按鈕
雙擊登陸按鈕,在其登陸方法裡寫上:

  1. protectedvoid btn_Login_Click(object sender, EventArgs e) 
  2.         if (TextBox1.Text == "admin" && TextBox2.Text == "fenghua17173"
  3.         { 
  4.             //“通知”表單驗證,該使用者名稱已經通過身份驗證
  5.             FormsAuthentication.RedirectFromLoginPage(TextBox1.Text, true
    ); 
  6.         } 
  7.         else
  8.         { 
  9.             Response.Write("<script>alert('賬號或密碼有誤,登入失敗!');</script>"); 
  10.         } 
  11. }  

ok,這時你在login.aspx頁面裡填上賬號密碼,系統就會根據根你在根目錄下web.config中配置的defaultUrl地址路徑跳轉過去,也就是admin/admin.aspx頁面。
現在admin目錄下的所有頁面,均已通過身份驗證,得到了可訪問的票據。

最後一點:
有登陸,當然別忘了登出,這個更簡單:
在admin目錄下的任何一個頁面中,加一個登出button按鈕,並在其方法下寫入: 

  1. //退出系統,登出使用者
  2. protectedvoid btn_Logout_Click(object sender, EventArgs e) 
  3.         //刪除使用者票據
  4.         FormsAuthentication.SignOut(); 
  5.         //重新定向到登陸頁面
  6.         FormsAuthentication.RedirectToLoginPage(); 

好了,你已經知道如何配置authentication,完成基於表單的身份驗證了。