這堂課將的是基于表單的身份驗證,其實某些時候,用于驗證身份的賬戶和密碼并不需要存在數據庫或配置文件里,這時 web.config中的authentication節(jié)點就起大作用了。
本堂課要完成的目的: 驗證用戶身份成功,并登陸后臺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目錄下的任何文件 allow users="*": 表示所有的用戶都可以訪問 到目前為止,只要你訪問admin下的任何文件,都會自動跳轉到Login.aspx登陸頁面了,要求你先登錄,否則別想看到頁面。
步驟三: 在根目錄下,創(chuàng)建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頁面里填上賬號密碼,系統(tǒng)就會根據根你在根目錄下web.config中配置的defaultUrl地址路徑跳轉過去,也就是admin/admin.aspx頁面。 現在admin目錄下的所有頁面,均已通過身份驗證,得到了可訪問的票據。
最后一點: 有登陸,當然別忘了注銷,這個更簡單: 在admin目錄下的任何一個頁面中,加一個注銷button按鈕,并在其方法下寫入:
-
- protected void btn_Logout_Click(object sender, EventArgs e)
- {
-
- FormsAuthentication.SignOut();
-
-
- FormsAuthentication.RedirectToLoginPage();
- }
好了,你已經知道如何配置authentication,完成基于表單的身份驗證了。
|