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

前端之家收集整理的这篇文章主要介绍了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可以很快失效.

猜你在找的asp.Net相关文章