Asp.net 表单身份验证会话在注销后有效
有没有一种好方法可以使服务器上的表单身份验证会话无效 我知道cookie有一个嵌入式过期,但我想在服务器上做一个额外的检查,以验证用户没有手动注销。当用户手动注销时,我会调用该命令,使cookie过期。但是,如果我使用开发人员工具将cookie设置回其原始值,我仍然会登录 我能想到的一个选择是将“登录id”嵌入到票证的部分。我的意思是,每个登录都记录在一个数据库中,并且有一个与之关联的id。当用户手动注销时,我可以更新数据库记录以显示他们已经这样做。但是,这需要我在每次对用户进行身份验证时查询数据库(这并不理想)。我可以维护一个缓存,但这似乎需要很多工作,我希望有一个更简单的方法:)Asp.net 表单身份验证会话在注销后有效,asp.net,authentication,forms-authentication,Asp.net,Authentication,Forms Authentication,有没有一种好方法可以使服务器上的表单身份验证会话无效 我知道cookie有一个嵌入式过期,但我想在服务器上做一个额外的检查,以验证用户没有手动注销。当用户手动注销时,我会调用该命令,使cookie过期。但是,如果我使用开发人员工具将cookie设置回其原始值,我仍然会登录 我能想到的一个选择是将“登录id”嵌入到票证的部分。我的意思是,每个登录都记录在一个数据库中,并且有一个与之关联的id。当用户手动注销时,我可以更新数据库记录以显示他们已经这样做。但是,这需要我在每次对用户进行身份验证时查询数
谢谢 MSDN。要点:在服务器上使用持久性存储来记录用户何时从网站注销。存储“登录id”的替代方法是更新用户记录中的“登录状态”字段 当用户登录时,将其设置为“loggedin”。 您可以将其设置为“loggedout”,同时
用于身份验证。注销
然后,在处理管道的早期某处检索用户记录(以后可能仍然需要它!)并检查标志。如果标志为“loggedout”,则表示出现了问题,您将以401(或另一个指示身份验证问题的代码)结束请求
当然,还可以将短cookie过期时间与滑动过期和SSL结合使用。这并不能防止cookie被您自己劫持,但可以降低被其他人重复使用的风险。这并不完全是我所希望的,但我认为您是正确的。谢谢:)谢谢你的提示。这里的缺点是,如果用户使用一个以上的浏览器登录(理论上可能),他们可能会遇到一些wierd行为。