我明白,我可以使用的權利要求進行陳述有關用戶:ASP.NET身份「基於角色的」索賠
var claims = new List<Claim>();
claims.Add(new Claim(ClaimTypes.Name, "Peter"));
claims.Add(new Claim(ClaimTypes.Email, "[email protected]"));
但是我應該如何儲存「基於角色的」索賠?例如:
該用戶是超級管理員。
claims.Add(new Claim("IsSuperAdmin, "true"));
值參數 「真」 的感覺完全是多餘的。如何使用索賠來表達此聲明?
Role類型的索賠與AspNetRoles表之間的關係是什麼? – mayu 2016-06-21 01:35:11
@Tymski AspNetRoles包含角色列表。當用戶登錄時,所有這些角色都會作爲'ClaimTypes.Role'類型的聲明添加到cookie中。 Cookie中的聲明是短暫的。數據庫中的記錄只是複製到cookie中。 – trailmax 2016-06-21 09:05:31
我應該指出,當搜索匹配的聲明時,'IPrincipal.IsInRole(「xx」)'不一定使用'ClaimTypes.Role'。例如,在Windows認證之後你可能會收到'WindowsPrincipal'實際上使用'ClaimTypes.GroupSid'來指定角色。而是使用'ClaimsIdentity.RoleClaimType'屬性。 – Rob 2016-10-14 14:54:26