微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net-mvc-5 – aspnet身份避免同时登录同一帐户

我正在搜索,但我找不到这个问题的答案:aspnet身份提供了一种避免同时从同一帐户登录方法吗?

解决方法

身份没有内置的方式来跟踪同时登录,但您可以进行解决方法:每次用户登录时,在设置auth-cookie之前,通过等待userManager.UpdateSecurityStampAsync(user.Id)来更改用户的SecurityStamp;

并确保在Startup.Auth.cs中包含此部分:

app.UseCookieAuthentication(new CookieAuthenticationoptions
        {
            Provider = new CookieAuthenticationProvider
            {
                // Enables the application to validate the security stamp when the user logs in.
                // This is a security feature which is used when you change a password or add an external login to your account.  
                OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager,ApplicationUser>(
                    validateInterval: TimeSpan.FromMinutes(5),regenerateIdentity: (manager,user) => user.GenerateUserIdentityAsync(manager))
            }
        });

这样,每次用户登录时,所有其他会话都将失效,因为用户的SecurityStamp已更改.并且validateInterval值足够低,因此其他auth-cookies可以很快失效.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐