我正在构建一个.net网络应用,并使用带有Cookie的表单身份验证来记住用户是否已登录:
<authentication mode="Forms">
<forms timeout="4320" cookieless="UseCookies" loginUrl="~/account.aspx" name="test" slidingExpiration="true" />
</authentication>
但是在构建,更改web.config或进行IIS重置之后,我加载的第一个页面显示我没有登录。但是如果我再次刷新页面,那么表明我已登录,即使我没有什么都不做。
所以它似乎记得我已登录,但仅在首页加载后。
那是通常的吗?我在web.config中有错误的配置吗?这只是一个localhost问题吗?答案 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