ASP.NET的安全認證:Windows驗證 (默認)、none、Passport、Forms
Froms驗證
一、開啟Forms驗證
1、打開web.config配置文件
2、找到<authentication mode="Windows"/> ,修改為
<authentication mode="Forms">
<forms loginUrl="login.aspx" defaultUrl="default.aspx" name=".ASPX"></forms>
</authentication>
即將login.aspx設為默認登錄頁,如果系統檢測到用戶未登錄,則自動跳轉到login.aspx頁面;默認主頁為:default.aspx;后綴名為:.ASPX;
添加<authorization>,設置訪問權限
<authorization>
<deny users="?" ></deny> <!--問好代表匿名用戶,*代表阻止所有用戶-->
</authorization>
如果使用Forms驗證,就需要用FormsAuthentication類來實現驗證過程,FormsAuthentication類經常和Membership類結合使用,進行用戶的登錄驗證。
創建身份驗證 Cookie
SetAuthCookie ( string userName, bool createPersistentCookie ) ,第二個參數:若要創建持久 Cookie(跨瀏覽器會話保存的 Cookie),則為 true;否則為 false。
string username = TextBox1.Text.Trim();
string password = TextBox2.Text.Trim();
if(登陸成功)
{
FormsAuthentication.SetAuthCookie(username,false);
Response.Redirect("default.aspx"); //登錄成功的話,跳轉到主頁
}
返回原始請求url
RedirectFromLoginPage ( string userName, bool createPersistentCookie )
將經過身份驗證的用戶重定向回最初請求的 URL 或默認 URL。第二個參數:若要創建持久 Cookie(跨瀏覽器會話保存的 Cookie),則為 true;否則為 false。
string username = TextBox1.Text.Trim();
string password = TextBox2.Text.Trim();
if(登陸成功)
{
FormsAuthentication.RedirectFromLoginPage(username, false); //登錄成功的話,跳轉到原始請求頁
}
刪除 Forms 身份驗證
SignOut () ;通常用於注銷用戶或用戶退出登錄。
login.aspx.cs中登錄按鈕的事件代碼:
protected void Button1_Click(object sender, EventArgs e)
{
string username = TextBox1.Text.Trim();
string password = TextBox2.Text.Trim();
FormsAuthentication.RedirectFromLoginPage(username, false);//自動轉到原始請求頁
//跳轉到網站首頁
//FormsAuthentication.SetAuthCookie(username,false);
//Response.Redirect("default.aspx");
}
default.aspx.cs中的代碼:
1、label1標簽顯示用戶名:Label1.Text = Context.User.Identity.Name;//在cookie中提取用戶名
2、注銷登錄按鈕:
FormsAuthentication.SignOut();
FormsAuthentication.RedirectToLoginPage();//退出后重定向到登錄頁,這兩行是配合使用的。