2014-04-01 56 views
0

我在ASP.NET 3.5應用程序中使用了表單身份驗證。當我登錄時,我可以在Chrome中看到auth cookie已設置並正在發送回ASP.NET Development Server。ASP.net代碼看不到瀏覽器設置的cookie

然而,當它到達這個代碼Global.asax

void Application_AuthenticateRequest(object sender, EventArgs e) 
{ 
    string cookieName = FormsAuthentication.FormsCookieName; 
    HttpCookie authCookie = Context.Request.Cookies[cookieName]; 

的權威性的cookie通過我的代碼設置不再存在!即使Chrome已經發送了該請求的Cookie!在Context.Request中只有ASP.NET會話cookie可見。

我試過更改auth cookie的名稱,但是沒有幫助。

順便說一下,它也正在請求瀏覽器執行NTLM身份驗證,即使我已更改web.config以指定表單身份驗證。

+0

你可以試試這個 - [使用iOS上的Google Chrome瀏覽器在ASP.NET網站上進行FormsAuthentication](http://www.hanselman.com/blog/FormsAuthenticationOnASPNETSitesWithTheGoogleChromeBrowserOnIOS.aspx) – Win

+0

@Win這不是問題 - cookie正在設置,它只是沒有被服務器代碼看到。 –

+0

您的應用程序的常規[HttpCookie](http://msdn.microsoft.com/en-us/library/system.web.httpcookie.aspx)是否可以在Chrome中使用?請在web.config中發佈創建** FormsAuthenticationTicket **和** authentication **標籤的代碼。 – Win

回答

0

的問題是,我是在事件日誌中收到以下錯誤:

Forms authentication failed for the request. Reason: The ticket supplied was invalid. 

,但我沒有看在事件日誌。

顯然它是ASP.NET的要求,將cookie值設置爲加密票證,如this code sample中所示。儘管有些文檔意味着什麼,但不能在表單身份驗證Cookie中放入任何您想要的東西。

相關問題