2014-09-23 2 views
2

저는 OWIN과 ASP.net Identity로 시작하고 있습니다. 사용자와 로그인하는 방법은 다음과 같습니다.사용자 역할이 변경 될 때 ASP.net Identity OWIN 쿠키?

ClaimsIdentity identity = new ClaimsIdentity(
    new Claim[] { 
     new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()), 
     new Claim(ClaimTypes.Name, user.Username), 
     new Claim(ClaimTypes.Email, user.Email), 
     new Claim(ClaimTypes.GivenName, user.FirstName), 
     new Claim(ClaimTypes.Surname, user.LastName), 
     }, "ApplicationCookie"); 

foreach(Role role in user.Roles) 
{ 
    identity.AddClaim(new Claim(ClaimTypes.Role, role.Name)); 
} 

var owinContext = Request.GetOwinContext(); 
var authManager = owinContext.Authentication; 
authManager.SignIn(new AuthenticationProperties() { IsPersistent = model.RememberMe }, identity); 

이 방법이 사용 가능하며 역할은 모두 올바르게 입력되었습니다. 내 질문은 : 사용자가 로그인하여 하나의 역할 집합을 가지고 있다면, 시스템 관리자 (아마도 시스템 관리자에 의해)에서 그들의 역할이 업데이트됩니다. 사용자의 인증 쿠키를 무효화하고 다시 채우는 방법은 무엇입니까? 당신의 Startup.cs 파일에서

답변

3

당신은 무효화됩니다 CookieAuthenticationProvider를 등록하고 특정 기간

app.UseCookieAuthentication(new CookieAuthenticationOptions 
{ 
     Provider = new CookieAuthenticationProvider 
     { 
      OnValidateIdentity = SecurityStampValidator 
       .OnValidateIdentity<UserManager, ApplicationUser, int>(
        validateInterval: TimeSpan.FromMinutes(30), 
        regenerateIdentityCallback: (manager, user) => user.GenerateUserIdentityAsync(manager) 
     } 
}); 
후 사용자에 대한 새 쿠키를 재생성 할 수 있습니다
관련 문제