幾種實現身份驗證的方式

   身份驗證,特別是在用戶沒有登陸的情況下不能訪問其他頁面的控制,好象總是避免不了。要達到這樣的目的,方法其實有很多。
   1.採用session控制。在登陸的時候給session賦值,而後在其他所有頁面的Load事件中對session進行判斷。這個利用了session針對單用戶的特點,實現方法很簡單,但是需要每個頁面判斷,有些不盡人意.
   2.cookie實現。自定義一個基類,用來判斷cookie值,並根據具體情況作出一些動作(是繼續作業,還是跳轉到login).其他頁面繼承這個類即可.具體實現可參考:http://blog.csdn.net/JustLovePro/archive/2008/04/07/2259296.aspx; http://blog.csdn.net/JustLovePro/archive/2008/04/08/2259369.aspx; 採用這種方式的好處就是非常靈活,因爲對cookie的控制都是有我們自己控制的. 單每個頁面還是要繼承這個基類,要避免這個,就得看MS的了。
  3.Forms身份驗證.MS在這裏爲我們做了大量的工作,我們要做的其實就是簡單的配置就好了。然後就是幾個已經封裝好的類的使用。看代碼:
web.config:
  <authentication mode="Forms">
      <forms
       name=".ASPXAUTH"  
       loginUrl ="Login.aspx"
       defaultUrl ="FormsDemo.aspx"
       protection ="All"
       timeout ="30"
       path ="/"
       requireSSL ="false"
       slidingExpiration ="true"
       enableCrossAppRedirects ="false"
       cookieless ="UseDeviceProfile"
       domain =""
      >
             </forms>
  </authentication>
  <authorization>
   <deny users="?"/>
  </authorization>
------------------------------------
Login.cs
  protected void btnLogin_Click(object sender, EventArgs e)
    {
        string username = txtName.Text;
        FormsAuthentication.RedirectFromLoginPage(username, true);
      
    }

---------------------
主頁面,顯示登陸者信息和註銷帳戶:
    protected void Page_Load(object sender, EventArgs e)
    {

        if (User.Identity.IsAuthenticated)
        {
            FormsIdentity identity = User.Identity as FormsIdentity;
            FormsAuthenticationTicket ticket = identity.Ticket;
            Response.Write("UserName:" + identity.Name);
            Response.Write("Time" + DateTime.Now.ToString());
        }
        else
        {
            FormsAuthentication.RedirectToLoginPage();
        }
       
    }
    protected void btnsignout_Click(object sender, EventArgs e)
    {
        FormsAuthentication.SignOut();
        FormsAuthentication.RedirectToLoginPage();
    }
 ===============================
就這樣,其他頁面不用實現任何代碼,就可以達到目的。

------------這幾天代碼貼不進去,鬱悶死了....---------------------

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章