【问题标题】:ASP.NET Initial Load in Production - IPrinciple Isnt Set生产中的 ASP.NET 初始加载 - 未设置原则
【发布时间】:2015-01-22 10:08:24
【问题描述】:

我遇到了一个让我有点困惑的情况,因为我无法在任何其他环境中复制它。

该网站仍在开发中,因此除了我们两个人在开发之外,几乎没有流量。因此,如果站点处于休眠状态(所有 IIS 实例已关闭等),当我第一次登录时,IPrinciple 设置不正确(及时?),因此后续的安全检查显然会失败。然后我可以立即返回登录页面,执行相同的登录,一切都很好。

无论我测试的是哪个用户,都会发生这种情况,因此它不特定于某个帐户。

然后我可以使用任何用户帐户登录和注销,这种情况再也不会发生。这在我的本地机器上的开发中从未发生过,而且我在我的本地 IIS 实例中也有一个系统实例,我将其用作人造登台环境。我只在空闲的生产环境中看到过这个。

我可以做些什么来防止这种情况发生?这是否也表明其他地方可能存在问题?

【问题讨论】:

  • 向我们展示代码.....你是如何设置 IPrinciple 的?你在哪里设置?你的登录代码是什么?您是否使用任何自定义 HttpModules 来设置 IPrinciple?所有这些细节都非常重要

标签: asp.net iis production-environment


【解决方案1】:

在做了一些实验后,发现问题只出现在 Google Chrome 中。所有其他浏览器都按预期运行。

解决方案实际上是我的疏忽。谷歌浏览器似乎对如何处理与域相关的 cookie 有更严格的规定。

在身份验证 cookie 上设置域属性修复了问题,现在 Google Chrome 也可以正常登录了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-18
    • 2022-01-23
    • 1970-01-01
    • 2020-11-07
    • 1970-01-01
    • 1970-01-01
    • 2012-06-11
    • 1970-01-01
    相关资源
    最近更新 更多