【发布时间】:2013-05-28 15:53:04
【问题描述】:
我有一个使用 .NET Framework 4.0 的 MVC 4 网站,并且已经部署了 Windows Server 2003 IIS,但我在 iPhone(尤其是 Chrome 浏览器)上遇到了表单身份验证问题。
场景
- 我在 iPhone 上打开 Chrome 应用程序。
- 我访问我的网站并单击登录。我设法使用表单身份验证成功登录我的网站。
- 我让网站打开了 5 分钟,什么也没做。
- 我回到我的 iPhone 并单击我网站上的链接。我已登出。
- 我尝试以与以前相同的方式登录。登录过程不起作用。没有错误,它只是将我带到我的主页(这是它应该在成功登录时执行的操作)。
其他信息
- 一般而言,iPhone 上的 Safari 似乎不会遇到此问题,除非...在 Chrome 中出现问题后,Safari 中似乎也出现问题。
- 解决方案似乎是清除我所有的缓存/cookie 并在 20 分钟左右后重试。
- 我的超时时间实际上设置为 30 分钟,因此 Chrome 应该不会在退出时遇到此问题。
-
我研究了这篇文章 (Asp.Net Forms Authentication when using iPhone UIWebView) 并尝试过:-
(a) web.config 中的 UseCookies 设置
(b) .browser 配置文件
(c) web.config 中的 MachineKey
似乎没有什么不同,Chrome 登录似乎只停留一两分钟。
代码
创建表单身份验证cookie的代码如下...
FormsAuthentication.Initialize()
Dim fat As FormsAuthenticationTicket = New FormsAuthenticationTicket(1, UserID, DateTime.Now, DateTime.Now.AddMinutes(FormsAuthentication.Timeout.TotalMinutes), False, Roles, FormsAuthentication.FormsCookiePath)
Response.Cookies.Add(New HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(fat)))
关于如何解决此问题的任何建议?
【问题讨论】:
标签: asp.net-mvc-4 forms-authentication