C# 在.net中重置IIS后经过身份验证的用户
我正在构建一个.net web应用程序,并使用带有cookie的表单身份验证来记住用户是否已登录:C# 在.net中重置IIS后经过身份验证的用户,c#,asp.net,authentication,cookies,forms-authentication,C#,Asp.net,Authentication,Cookies,Forms Authentication,我正在构建一个.net web应用程序,并使用带有cookie的表单身份验证来记住用户是否已登录: <authentication mode="Forms"> <forms timeout="4320" cookieless="UseCookies" loginUrl="~/account.aspx" name="test" slidingExpiration="true" /> </authentication> 但是在构建、更改web.conf
<authentication mode="Forms">
<forms timeout="4320" cookieless="UseCookies" loginUrl="~/account.aspx" name="test" slidingExpiration="true" />
</authentication>
但是在构建、更改web.config或执行IIS重置之后,我加载的第一个页面显示我没有登录。但如果我再次刷新页面,它会显示我已登录,即使我什么也没做
所以它似乎记得我登录了,但只是在第一页加载之后
通常是这样吗?我是否在web.config中有错误配置的内容?这只是本地主机的问题吗?好的,这当然是我自己的错误。事实证明,在我的web.config中,我有以下设置:
<appSettings configSource="appSettings.config" />
问题是appSettings.config在我的项目中不存在。在我删除了这一行(它来自样板代码,不需要它)之后,它就工作了
显然,在第一次加载时.net对这个文件不存在感到愤怒,因为它第一次尝试加载配置,但在第一次加载后,它就不再关心了(这是我能得到的最技术性的) 问题在于会话正在重置。虽然你正在吃饼干,但你还需要做一件事 在“验证用户”部分,确保选中了“记住我”设置,即
FormsAuthentication.RedirectFromLoginPage ("TheirUserId", Persist.Checked)
这是您需要确保为true的Persist.Checked。有关更多信息,请参阅。您是否使用普通的asp.net Web窗体?在CodeBehind中是否有任何IsPostBack逻辑?正常情况下,cookie在服务器跳转后仍然有效。第一页不起作用是不正常的。你在另一台机器上试过吗?