這堂課將的是基于表單的身份驗證,其實(shí)某些時(shí)候,用于驗證身份的賬戶(hù)和密碼并不需要存在數據庫或配置文件里,這時(shí) web.config中的authentication節點(diǎn)就起大作用了。
本堂課要完成的目的:
驗證用戶(hù)身份成功,并登陸后臺admin文件夾里的admin.aspx后臺管理頁(yè)面,否則禁止匿名用戶(hù)訪(fǎng)問(wèn)項目中的admin文件夾里的任何一個(gè)文件
步驟一:
在根目錄下的web.config中加入:
- <system.web>
- <authentication mode="Forms">
- <forms loginUrl="Login.aspx" defaultUrl="admin/admin.aspx" name=".ASPXFORMSAUTH">
- </forms>
- </authentication>
- </system.web>
loginUrl:用戶(hù)沒(méi)有登錄,跳轉到的登錄頁(yè)面
defaultUrl:正確登錄之后,在沒(méi)有指向頁(yè)的時(shí)候,弄人跳轉的頁(yè)面
步驟二:
在admin文件夾下新建一個(gè)web.config文件,并加入以下代碼
- <system.web>
- <!--拒絕匿名用戶(hù)訪(fǎng)問(wèn)此目錄下的任何文件-->
- <authorization>
- <deny users="?"/>
- </authorization>
- </system.web>
- protected void btn_Login_Click(object sender, EventArgs e)
- {
- if (TextBox1.Text == "admin" && TextBox2.Text == "fenghua17173")
- {
- //“通知”表單驗證,該用戶(hù)名已經(jīng)通過(guò)身份驗證
- FormsAuthentication.RedirectFromLoginPage(TextBox1.Text, true);
- }
- else
- {
- Response.Write("<script>alert('賬號或密碼有誤,登錄失敗!');</script>");
- }
- }
ok,這時(shí)你在login.aspx頁(yè)面里填上賬號密碼,系統就會(huì )根據根你在根目錄下web.config中配置的defaultUrl地址路徑跳轉過(guò)去,也就是admin/admin.aspx頁(yè)面。
現在admin目錄下的所有頁(yè)面,均已通過(guò)身份驗證,得到了可訪(fǎng)問(wèn)的票據。
最后一點(diǎn):
有登陸,當然別忘了注銷(xiāo),這個(gè)更簡(jiǎn)單:
在admin目錄下的任何一個(gè)頁(yè)面中,加一個(gè)注銷(xiāo)button按鈕,并在其方法下寫(xiě)入:
- //退出系統,注銷(xiāo)用戶(hù)
- protected void btn_Logout_Click(object sender, EventArgs e)
- {
- //刪除用戶(hù)票據
- FormsAuthentication.SignOut();
- //重新定向到登陸頁(yè)面
- FormsAuthentication.RedirectToLoginPage();
- }
好了,你已經(jīng)知道如何配置authentication,完成基于表單的身份驗證了。
聯(lián)系客服