這堂課將的是基于表單的身份驗(yàn)證,其實(shí)某些時(shí)候,用于驗(yàn)證身份的賬戶和密碼并不需要存在數(shù)據(jù)庫(kù)或配置文件里,這時(shí) web.config中的authentication節(jié)點(diǎn)就起大作用了。
本堂課要完成的目的: 驗(yàn)證用戶身份成功,并登陸后臺(tái)admin文件夾里的admin.aspx后臺(tái)管理頁(yè)面,否則禁止匿名用戶訪問(wèn)項(xiàng)目中的admin文件夾里的任何一個(gè)文件
步驟一: 在根目錄下的web.config中加入:
- <system.web>
- <authentication mode="Forms">
- <forms loginUrl="Login.aspx" defaultUrl="admin/admin.aspx" name=".ASPXFORMSAUTH">
- </forms>
- </authentication>
- </system.web>
loginUrl:用戶沒(méi)有登錄,跳轉(zhuǎn)到的登錄頁(yè)面 defaultUrl:正確登錄之后,在沒(méi)有指向頁(yè)的時(shí)候,弄人跳轉(zhuǎn)的頁(yè)面
步驟二: 在admin文件夾下新建一個(gè)web.config文件,并加入以下代碼
- <system.web>
-
- <authorization>
- <deny users="?"/>
- </authorization>
- </system.web>
deny users="?":表示禁止匿名用戶訪問(wèn)admin目錄下的任何文件 allow users="*": 表示所有的用戶都可以訪問(wèn) 到目前為止,只要你訪問(wèn)admin下的任何文件,都會(huì)自動(dòng)跳轉(zhuǎn)到Login.aspx登陸頁(yè)面了,要求你先登錄,否則別想看到頁(yè)面。
步驟三: 在根目錄下,創(chuàng)建Login.aspx登陸頁(yè)面(可不是在admin目錄下哦),加兩個(gè)textbox控件和一個(gè)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('賬號(hào)或密碼有誤,登錄失敗!');</script>");
- }
- }
ok,這時(shí)你在login.aspx頁(yè)面里填上賬號(hào)密碼,系統(tǒng)就會(huì)根據(jù)根你在根目錄下web.config中配置的defaultUrl地址路徑跳轉(zhuǎn)過(guò)去,也就是admin/admin.aspx頁(yè)面。 現(xiàn)在admin目錄下的所有頁(yè)面,均已通過(guò)身份驗(yàn)證,得到了可訪問(wèn)的票據(jù)。
最后一點(diǎn): 有登陸,當(dāng)然別忘了注銷,這個(gè)更簡(jiǎn)單: 在admin目錄下的任何一個(gè)頁(yè)面中,加一個(gè)注銷button按鈕,并在其方法下寫入:
-
- protected void btn_Logout_Click(object sender, EventArgs e)
- {
-
- FormsAuthentication.SignOut();
-
-
- FormsAuthentication.RedirectToLoginPage();
- }
好了,你已經(jīng)知道如何配置authentication,完成基于表單的身份驗(yàn)證了。
|