IIS重置IIS后经过身份验证的用户

时间:2011-06-14 13:30:38

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

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

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

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

所以它似乎记得我已登录,但仅在首页加载后。

那是通常的吗?我在web.config中有错误的配置吗?这只是一个localhost问题吗?

2 个答案:

答案 0 :(得分:4)

好吧,这当然是我自己的骨头错误。结果在我的web.config中我有了设置:

<appSettings configSource="appSettings.config" /> 

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

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

答案 1 :(得分:1)

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

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

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

它的Persist.Checked你需要确保是真的。有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/xdt4thhy.aspx