如何在ASP.NET MVC中关闭浏览器或选项卡时将用户注销?
我需要在用户关闭选项卡或浏览器时注销用户,我该如何在ASP.NET MVC中执行此操作?
在浏览器关闭时,您可以采取一些措施来确保用户已注销,但这取决于您如何设置FormsAuthentication cookie:
- 使用
Cookieless=True
。 - 将FormsAuthenticationTicket设置为不持久
- 使用
FormsAuthentication.SetAuthCookie
将Persistence设置为false
- 使用JavaScript方法删除
window.unload
上的cookie。
Cookieless=True
方法:
这会将cookie值附加到每个请求中的查询字符串。 这种方法的问题是它不是很安全,它与SEO混淆。 如果用户向任何人发送他们正在使用的URL,则该人可以作为原始用户登录(可能不是您想要的)。 至于“搞乱搜索引擎优化”,它会导致同一页面看起来与基于传入的URL的googlebot不同。每个QueryString更改使其成为一个新的URL,如果有人使用它来发布链接; 它会稀释给定实际URL的搜索结果。
FormsAuthenticationTicket
方法
为用户设置身份validationcookie时,将Persistent设置为False
。
如果您在FormsAuthentication.SetAuthCookie
执行此操作,则这是默认设置。 如果使用FormsAuthenticationTicket
类,则必须指定cookie过期。
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket( 1, //version "blah", //Cookie Name );
FormsAuthentication.SetAuthCookie()
方法
默认情况下,如果未设置persistent
,则身份validationcookie将在会话结束时(用户关闭浏览器时)到期。
FormsAuthentication.SetAuthCookie("CookieValue", false); //second argument is persistent'
JavaScript方法:
没有万无一失的方法; 您所能做的就是将Cookie过期日期设置为之前,并希望用户的浏览器合作。 如果你真的,真的,真的,希望cookie消失,你总是可以尝试一种JavaScript方法,但如果用户禁用了JavaScript,这将无效。
window.addEventListener('unload', function(event) { document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;'; });
其他警告
您使用哪种浏览器也很重要。 Chrome可以在后台运行,并且可以使会话Cookie保持不变,直到超时达到 – 当浏览器关闭时它们不会被丢弃 (我发现这很难)。
上述就是C#学习教程:如何在ASP.NET MVC中关闭浏览器或选项卡时将用户注销?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/959370.html