程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> PostAuthenticateRequest 我們能做什麼

PostAuthenticateRequest 我們能做什麼

編輯:.NET實例教程

來看一下MS的說明

注意:此事件在 .Net Framework 2.0 版中是新增的。

當安全模塊已建立用戶標識時發生。

命名空間:System.Web
程序集:System.Web(在 system.web.dll 中) 

在2.0中我們使用成員組及Forms驗證來實現用戶的登錄,但是成員組所提供的功能有時有限.我們需要能訪問到自己定義的個人信息時.這時我們就能利用此事件來處理.

當然Context.User對象是實現IPrincipal, IIdentity這二個接口的.因此只要我們自定義的USER類也能實現此接口,我們就實現了一半了.


public class MyUserObject : IPrincipal, IIdentity
{
    
     public string Name;
 
          public string PassWordHash;
 
    
     public string PassWordSalt;
 
     #region IIdentity Members
 
     public string AuthenticationType
     {
         get
         {
$False$

yle="FONT-SIZE: 9pt">              return "Froms";
         }
     }
 
     public bool IsAuthenticated
     {
         get
         {
              return true;
         }
     }
 
     string IIdentity.Name
     {
         get
         {
              return this.Name;
         }
     }
 
     #endregion
 
     #region IPrincipal Members
 
     public IIdentity Identity
     {
         get
         {
              return this;
         }
     }
 
     public bool IsInRole(string role)
     {
         return false;
     }
 
     #endregion
}

用戶實體替換應該發生在HttpApplication的PostAuthenticateRequest事件發生時,因為此時ASP.Net已經從客戶端得到了用戶憑證CookIEONT-FAMILY: 宋體; mso-hansi-font-family: ''Times New Roman''; mso-ascii-font-family: ''Times New Roman''">並進行了解密和校驗。
我們既可以編寫一個HttpModule來處理PostAuthenticateRequest事件,也可以在Global.asax文件中添加事件處理器。這裡為了簡單,我們選擇在Global.asax中添加如下事件處理器:


void Application_PostAuthenticateRequest(object sender, EventArgs e)
{
     HttpApplication application= (HttpApplication)sender;
     if(application.Context.User.Identity.Name != "") // 登錄成功後     {
         MyUserObject user ="自己取出對象的處理";
         application.Context.User = user;
        
     }
}

下面你就可以在其他頁面訪問到自定義的用戶實體對象了.
MyUserObject user = HttpContext.Current.User as MyUserObject

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved