我在使用ASP.NET SQL成员资格提供程序的网站遇到问题。首次登录时一切正常。即,用户被定向到登录页面,并且在成功登录后,他们被发送他们请求的原始页面。
然而,在他们关闭浏览器并重新打开它之后,身份验证cookie仍然存在。他们可以直接进入任何需要身份验证而无需登录的页面。
我有另一个网站,我正在使用相同的会员提供商,它的行为有所不同。当我在Firefox中检查cookie时,有问题的站点有“Expires:2010年4月26日星期一下午2:23:50”正常工作的站点有“Expires:At session of session”。
指定两个站点的到期时间的设置相同:
authentication mode="Forms"
forms name=".MySite" protection="All" path="/"
loginUrl="mySite/login.aspx" slidingExpiration="true" timeout="30"
requireSSL="false"
authentication
(我删除了上面代码参考中的元素分隔符,因为它弄乱了编辑器)
最终,我希望超时为30分钟,但我也希望cookie在用户关闭浏览器时过期。我不希望它在机器上活动30分钟。这就是它在我正在研究的其他网站上的表现,我不确定它的区别是什么。
由于 -Shane
答案 0 :(得分:3)
您是否尝试在写入Cookie的登录页面上的代码中将Cookie持久性设置为false?
示例:
FormsAuthentication.RedirectFromLoginPage(userName, false);