2013-07-10 36 views
-1

我正在处理ASP.NET MVC 4应用程序。我创建了几个cookie,并没有设置任何到期时间。当我做一个RedirectToAction时,所有的cookies都被删除了。我不知道我在这里失去了什么。以下是我写的创建代码和访问饼干:ASP.NET MVC Cookie在重定向到操作后被删除

创建的cookie:

HttpCookie authorizedCookie = new HttpCookie(AuthCookieName); 
authorizedCookie.Value = authorized.ToString(); 
Response.SetCookie(authorizedCookie); 

访问饼干:

authorized = Request.Cookies[AuthCookieName] != null ? System.Convert.ToBoolean(Request.Cookies[AuthCookieName].Value) : false; 

当我试图访问饼干,Cookie集合始终空。

更新: 我也尝试设置域,过期时间,httponly,但似乎没有任何工作。当我看着小提琴手时,cookies似乎在重定向后立即被删除。

+0

提供的代码和信息不足以回答这个问题。你用什么URL登录,你重定向到哪个网址?此外,您无法一次性重定向和设置Cookie,您是否正在执行此操作? – CodeCaster

+0

@CodeCaster我使用的URL是“us-srv-web01d/appname”。正如其他职位建议,我试图删除连字符,但饼干仍然没有得到创建。要提到这个问题只发生在IE中。在IE中根本不创建cookie。其他浏览器的工作非常好。 –

+0

我刚刚在其他几台运行相同版本IE的工作机器上测试了该应用程序,并且该应用程序正常工作。截至目前,这个问题似乎是特定于我的机器。所有cookie都在我的机器上启用。所以,我还没有确定究竟是什么原因(或设置)。 –

回答

0

我现在可以创建cookie了。这个问题似乎与我的IE设置。我将浏览器重置为初始状态,cookies工作正常。

我还不确定哪个设置导致了问题。因此,我仍然不相信使用cookie方法。目前我的网站严重依赖于cookies,任何与用户浏览器有关的问题都会使我的网站无用。我打算更换cookie方法。

感谢您的回复。

1

Response.SetCookie()只更新现有的Cookie。使用Response.Cookies.Add()。

+0

,似乎也没有伎俩。我能够通过重定向后创建cookie来部分解决问题。它在所有浏览器上都很有魅力。但IE无法创建Cookie。我的网址看起来像“htttp:// us-srv-web01d/appname”。根据我阅读的其他帖子,IE不喜欢域名中的一些字符。所以我删除了域名中的连字符,但这也不起作用。 –

+0

关于你的意见,可能试着看看有没有什么在这里可以帮助你:http://stackoverflow.com/questions/7384502/ie9-loses-cookies-after-redirect – JuhaKangas