0

我有一个使用 .NET Framework 4.0 的 MVC 4 网站,并且已经部署了 Windows Server 2003 IIS,但我在 iPhone(尤其是 Chrome 浏览器)上遇到表单身份验证问题。

设想

  1. 我在 iPhone 上打开 Chrome 应用程序。
  2. 我访问我的网站并单击登录。我设法使用表单身份验证成功登录我的网站。
  3. 我让网站打开 5 分钟,什么也没做。
  4. 我回到我的 iPhone 并点击我网站上的链接。我已登出。
  5. 我尝试以与以前相同的方式登录。登录过程不起作用。没有错误,它只是将我带到我的主页(这是成功登录时应该做的)。

其他信息

  1. 一般来说,iPhone 上的 Safari 似乎不会遇到这个问题,除非......在 Chrome 中出现问题后,Safari 中似乎也出现了问题。
  2. 解决方案似乎是清除我所有的缓存/cookie 并在 20 分钟左右后再试一次。
  3. 我的超时实际上设置为 30 分钟,因此 Chrome 无论如何都不会遇到此问题。
  4. 我研究了这篇文章(使用 iPhone UIWebView 时的 Asp.Net Forms Authentication)并尝试了:-

    (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)))

关于如何解决此问题的任何建议?

4

1 回答 1

0

我想出了我的问题——这是一个愚蠢的错误。我将 UseCookies 输入到 web.config 中的 SessionState 键中,而不是 Forms 部分。

于 2013-05-29T12:50:05.657 回答