2010-06-21 75 views
0

我有問題contextInfoIHttpModule的初始化沒有被解僱

[WebMethod] 
[SoapHeader("UserInfo", Direction = SoapHeaderDirection.In)] 
public void TestContext() 
     { 
      var user = ContextInfo.Current.User.LoginName; 
     } 

UserInfo _userInfo; 
     [System.Xml.Serialization.SoapElement(IsNullable = true)] 
     public UserInfo UserInfo 
     { 
      get { return _userInfo; } 
      set { _userInfo = value; } 
     } 

當我跑我在當地的一切ASMX去罰款,將其輸入到

public void Init(HttpApplication httpApp). 

但是當我在服務運行我的web它不,我得到錯誤在

ContextInfo.Current.User.LoginName; 

因爲目前爲空。

我通過遠程調試器檢查了這一點。

我有Windows Server 2008和我在像我的服務器域。

public class AuthenticateRequestHttpModule : IHttpModule 
    { 

     private HttpApplication mHttpApp; 

     public void Init(HttpApplication httpApp) 
     { 
      this.mHttpApp = httpApp; 

      mHttpApp.AuthenticateRequest += new EventHandler(OnAuthentication); 
     } 
... 
} 

ContextInfo:

public class ContextInfo 
{ 

    public static void Create(User user) 
    { 
     HttpContext.Current.Items.Add(ITEM_KEY, new ContextInfo(user)); 
    } 

      public static ContextInfo Current 
    { 
     get 
     { 
      return HttpContext.Current.Items[ITEM_KEY] as ContextInfo; 
     } 
    } 


     private ContextInfo(User user) 
    { 

     _user = user; 
    } 

    public User User 
    { 
     get { return _user; } 
    } 


    User _user; 
    private const string ITEM_KEY = "ContextInfo"; 
} 

任何想法?

+0

你可以分享'ContextInfo'的代碼,特別是'ContextInfo.Current'。 – 2010-06-21 17:15:45

+0

@Chris Taylor我已添加 – user278618 2010-06-23 08:27:38

回答