2008-10-06 64 views
1

我無法弄清楚如何從編譯對象中訪問cookie。我試圖編譯(DLL)對象來檢查用戶的cookie,然後將其與數據庫進行比較,以確認他們具有正確的訪問權限。Cookie和對象

我可以通過cookie信息正常,組件將工作,但我試圖讓組件檢查用戶cookie以及。我甚至不確定要使用什麼對象。我一直在搜索整個週末,並且我看到了對httprequest,httpcookie,cookie和cookiecollection的引用。

我可以使用Request.Cookies(「inet」)(「user_id」)在頁面本身查找cookie值,但這不適用於組件。

回答

2

對象(App_Code文件/編譯的DLL)只能通過靜態的HttpContext.Current對象

HttpCookie cookie = HttpContext.Current.Request.Cookies["CookieName"]; 

(如果它不是從Web應用程序稱爲訪問請求,HttpContext.Current爲null,所以你可能要檢查在單元測試中運行) (如果這不是App_Code,則需要引用System.Web)

1

如果組件是來自Web應用程序的獨立DLL,則需要傳入對Request對象的引用。

這就是說,爲什麼不在調用您的DLL之前讀取/檢查ASP.NET代碼中的cookie值。將您的業務邏輯耦合到您的Web層並不是一個好主意。