在iPhone上使用Chrome表单身份验证问题

时间:2013-05-28 15:53:05

标签: asp.net-mvc-4 forms-authentication

我有一个使用.NET Framework 4.0的MVC 4网站,并且部署了Windows Server 2003 IIS,我在iPhone(特别是Chrome浏览器)上进行表单身份验证时出现问题。

方案

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

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

      (a)web.config中的UseCookies设置

      (b).browser配置文件

      (c)web.config中的MachineKey

    5. 似乎没什么区别,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)))
      

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

1 个答案:

答案 0 :(得分:0)

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