ASP.NET中的forms驗證


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();//退出后重定向到登錄頁,這兩行是配合使用的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM