傻瓜老師又來了,本講座報以學以致用,師傅帶進門 修行靠個人的精神,不深入探討,還請多指教~
這堂課將的是表單型驗證,其實某些時候,用於驗證身份的賬戶和密碼並不需要存在資料庫或設定檔裡,這時 web.config中的authentication節點就起大作用了。
本堂課要完成的目的:
驗證使用者身份成功,並登陸後台admin檔案夾裡的admin.aspx後台管理頁面,否則禁止匿名使用者存取項目中的admin檔案夾裡的任何一個檔案
步驟一:
在根目錄下的web.config中加入:
<system.web>
<authentication mode="Forms">
<forms loginUrl="Login.aspx" defaultUrl="admin/admin.aspx" name=".ASPXFORMSAUTH">
</forms>
</authentication>
</system.web>
loginUrl:使用者沒有登入,跳轉到的登入頁面
defaultUrl:正確登入之後,在沒有指向頁的時候,弄人跳轉的頁面
步驟二:
在admin檔案夾下建立一個web.config檔案,並加入以下代碼
<system.web>
<!--拒絕匿名使用者存取此目錄下的任何檔案-->
<authorization>
<deny users="?"/>
</authorization>
</system.web>
deny users="?":表示禁止匿名使用者存取admin目錄下的任何檔案
到目前為止,只要你訪問admin下的任何檔案,都會自動跳轉到Login.aspx登陸頁面了,要求你先登入,否則別想看到頁面。
步驟三:
在根目錄下,建立Login.aspx登陸頁面(可不是在admin目錄下哦),加兩個textbox控制項和一個botton控制項,分別是使用者名稱,密碼,和登陸按鈕
雙擊登陸按鈕,在其登陸方法裡寫上:
protected void btn_Login_Click(object sender, EventArgs e)
{
if (TextBox1.Text == "admin" && TextBox2.Text == "fenghua17173")
{
//“通知”表單驗證,該使用者名稱已經通過身分識別驗證
FormsAuthentication.RedirectFromLoginPage(TextBox1.Text, true);
}
else
{
Response.Write("<script>alert('帳號或密碼有誤,登入失敗!');</script>");
}
}
ok,這時你在login.aspx頁面裡填上帳號密碼,系統就會根據根你在根目錄下web.config中配置的defaultUrl地址路徑跳轉過去,也就是admin/admin.aspx頁面。
現在admin目錄下的所有頁面,均已通過身分識別驗證,得到了可訪問的票據。
最後一點:
有登陸,當然別忘了登出,這個更簡單:
在admin目錄下的任何一個頁面中,加一個登出button按鈕,並在其方法下寫入:
//退出系統,登出使用者
protected void btn_Logout_Click(object sender, EventArgs e)
{
//刪除使用者票據
FormsAuthentication.SignOut();
//重新定向到登陸頁面
FormsAuthentication.RedirectToLoginPage();
}
好了,你已經知道如何配置authentication,完成表單型驗證了。
ok,今天的教程就到這裡,傻瓜老師吃黃瓜去了,下堂課見。