我正在實現自定義成員資格和角色提供程序,我需要將所有角色/成員身份信息存儲在用戶會話中。如何訪問Web項目外的ASP.Net會話對象(類庫)
我在一個類庫項目(不同於網站項目)中實現這些自定義提供程序,並需要訪問它們中的會話。這個想法是在會話中首次從數據庫中檢索角色/會員相關信息。
當我嘗試訪問使用會話
System.Web.HttpContext.Current.Session
我得到這是一個空對象(對象引用未設置到對象的實例。
爲什麼會議談到了將空?
我正在實現自定義成員資格和角色提供程序,我需要將所有角色/成員身份信息存儲在用戶會話中。如何訪問Web項目外的ASP.Net會話對象(類庫)
我在一個類庫項目(不同於網站項目)中實現這些自定義提供程序,並需要訪問它們中的會話。這個想法是在會話中首次從數據庫中檢索角色/會員相關信息。
當我嘗試訪問使用會話
System.Web.HttpContext.Current.Session
我得到這是一個空對象(對象引用未設置到對象的實例。
爲什麼會議談到了將空?
可能是,如果你有會話關閉時,例如處理器或也許是頁面有沒有使用會話的設置。
否則它通常應該返回一個會話對象,我在自己的項目中使用了相同的解決方案。
但你應該總是有代碼來測試空指針,以防萬一。
您是否測試過您獲得了HttpContext?
是的,我得到的HTTP上下文對象和其他屬性確實有相關的值。只是會議結果是空的。會話對象在頁面生命週期的哪個點可用?難道是這個代碼被調用之前比? – 2010-10-29 15:18:25
可能但不太可能。這個頁面描述了頁面的生命週期,包括HttpContext的創建地址http://msdn.microsoft.com/en-us/library/bb470252.aspx,而且我無法在HttpContext完全填充之前運行代碼。 – 2010-10-29 23:42:24
你應該可以像這樣訪問會話,除非你不在web上下文中(例如分離的線程) – 2010-10-29 14:29:52
它是''Session''是'null'還是'HttpContext.Current' ?如果是上下文,那麼你的代碼不在處理請求的線程中運行。 – 2010-10-29 14:31:03
上下文本身不爲空。只有上下文中的會話對象爲空。 – 2010-10-29 15:15:31