7
검색 중이지만이 질문에 대한 답변을 찾을 수 없습니다. aspnet ID는 동일한 계정에서 동시 로그인을 방지하는 한 가지 방법입니까?aspnet ID 동시 로그인 방지 같은 계정
검색 중이지만이 질문에 대한 답변을 찾을 수 없습니다. aspnet ID는 동일한 계정에서 동시 로그인을 방지하는 한 가지 방법입니까?aspnet ID 동시 로그인 방지 같은 계정
신원 동시 로그인을 추적 할 수있는 기본 방법을 가지고 있지 않지만, 당신이 할 수있는 해결 방법 : 매번 사용자가 로그인, 인증-쿠키, 변경 사용자의 SecurityStamp
로를 설정하기 전에 await userManager.UpdateSecurityStampAsync(user.Id);
그리고 당신이 당신의 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
값이 충분히 낮으므로 다른 인증 쿠키를 곧 무효화 할 수 있습니다.
해당 사용자의 활성 세션이있는 경우 로그인을 피할 수있는 방법을 찾고있었습니다. UserManager.GetSecurityStampAsync 트릭을 할 것인가? –
@ThiagoCustodio'GetSecurityStampAsync'는 사용자 기록에 저장된 GUID 인 보안 스탬프 만 반환합니다. 그 자체로는별로 효과가 없습니다. 두 번째로 로그인하지 않으려면 훨씬 더 복잡합니다. 현재 세션을 추적하고, ID를 보존하고, ID를 auth-cookie에 넣고, 현재 세션이 이미 저장되어 있는지 확인합니다. . 그리고 나는이 접근법에 대한 많은 문제점들을 예견 할 수있다. 궁극적으로 사용자가 로그인 공유를 중단하기를 원한다면 제안 된 접근 방식으로 곧 비밀번호 공유가 나빠질 것입니다. – trailmax
MVC 5의 파일에서 userManager.UpdateSecurityStampAsync (user.Id)를 기다리고 있습니까? – SAR