2
我剛剛開始使用OWIN和ASP.net身份。這是我登錄我的用戶的方式:當用戶角色改變時,ASP.net身份OWIN cookie?
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);
這樣可以正常工作,角色都可以正確連接。我的問題是:如果用戶登錄並擁有一組角色,那麼他們的角色會在系統中更新(可能是由系統管理員),您如何使用戶的auth cookie失效並重新填充?