【问题标题】:Authenticated users after IIS reset in .net在 .net 中重置 IIS 后经过身份验证的用户
【发布时间】:2011-06-14 22:00:42
【问题描述】:

我正在构建一个 .net 网络应用程序并使用带有 cookie 的表单身份验证来记住用户是否登录:

<authentication mode="Forms">
  <forms timeout="4320" cookieless="UseCookies" loginUrl="~/account.aspx" name="test" slidingExpiration="true" /> 
</authentication>

但是在构建、更改 web.config 或重置 IIS 之后,我加载的第一个页面显示我没有登录。但是如果我再次刷新页面,它就会显示我已经登录,即使我没有什么都不做。

所以它似乎记得我已登录,但只是在第一页加载之后。

这是平常的事吗?我在 web.config 中有什么配置错误吗?这只是本地主机问题吗?

【问题讨论】:

  • 有趣的一个。您使用的是普通的 asp.net 网络表单吗? CodeBehind 中是否有任何 IsPostBack 逻辑?
  • 服务器反弹后cookie仍然有效是正常的。第一页打不开是不正常的。
  • 你在另一台机器上试过这个吗?

标签: c# asp.net authentication cookies forms-authentication


【解决方案1】:

好吧,这当然是我自己的愚蠢错误。原来在我的 web.config 我有设置:

<appSettings configSource="appSettings.config" /> 

问题是我的项目中不存在 appSettings.config。在我删除这一行(它来自样板代码并且不需要它)之后,它找到了。

显然,在第一次加载时,.net 对这个文件不存在感到愤怒,因为它第一次尝试加载配置,但在第一次加载后它就不再关心了(这和我一样技术可以得到)。

【讨论】:

    【解决方案2】:

    问题是正在重置会话。虽然你有饼干,你还需要做一件事。

    在您的验证用户部分,确保选中记住我设置,即

     FormsAuthentication.RedirectFromLoginPage ("TheirUserId", Persist.Checked)
    

    您需要确保的 Persist.Checked 是真的。更多信息请参考http://msdn.microsoft.com/en-us/library/xdt4thhy.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-13
      • 2020-11-15
      • 2016-01-17
      • 2018-04-06
      • 2015-04-20
      • 2019-04-25
      • 2012-03-23
      • 1970-01-01
      相关资源
      最近更新 更多