【问题标题】:Asp.Net FormAuthenticaion fails in Safari BrowserSafari 浏览器中的 Asp.Net 表单身份验证失败
【发布时间】:2015-12-02 02:45:17
【问题描述】:

我正在使用简单的方法来创建 cookie。

FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
return RedirectToAction("Index", "Dashboard");

不知何故,我调试了我的应用程序,发现User.Identity.IsAuthenticated 始终为假,User.Identity.Name 也为空。

注意:上述行为仅适用于 SAFARI,并且在其他浏览器(如 IE、Firefox 和 chrome)上运行良好。

我知道我的问题重复了,Google 为我提供了足够的解决方案链接,但我似乎无法解决我的问题。我使用的是 .NET 4.5,Safari 版本是 5+。

【问题讨论】:

  • 也许你应该尝试列出一些你已经尝试过的东西? This answer 例如说 Safari 在 cookie 值的编码方面有问题,你试过吗?
  • 您是否有任何示例可以简化您的原始代码版本来重现此问题?

标签: c# asp.net-mvc safari forms-authentication


【解决方案1】:

您确定以下行工作正常,即身份验证 cookie 设置正确吗?您可以随时检查为网站创建的 cookie。如果你不知道只是谷歌它。这是相当简单的技巧。

以下行实际上设置了一个身份验证 cookie FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);

如果未设置 cookie,则意味着 Safari 上禁用了 cookie。如果它们被设置,那么我们可以进一步挖掘。

如果正在设置 cookie,则将 cookie 与在另一个浏览器中创建的 cookie 进行比较。并且可能会在这里发布,以便我们了解发生了什么。

【讨论】:

  • 没有使用 FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe) 设置 Cookie,Safari 中也启用了 Cookie。请仔细阅读问题
  • Waqar bhai,关于您的问题,没有提到未设置 cookie。话虽如此,问题很明显是没有设置cookie。我会检查一下,看看我是否可以复制这个问题。
  • 嗯,我认为设置了正确的身份验证,这就是它在其他浏览器中工作的原因。
  • 看看这篇文章对你有没有帮助stackoverflow.com/questions/14825805/…
  • 我刚刚使用 Safari 5.1.7 复制了它 waqar bhai 第一次 User.Identity.IsAuthenticated 是错误的,但我关闭了我的 safari 重新打开它并将它设置为 true。与 User.Identity.Name 的情况类似。如果您需要,我可以与您分享我的项目
猜你喜欢
  • 1970-01-01
  • 2019-06-26
  • 2012-12-13
  • 1970-01-01
  • 2020-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-04
相关资源
最近更新 更多