Dav*_*New 18 c# claims-based-identity asp.net-authentication asp.net-identity asp.net-web-api2
我知道我可以使用声明来声明用户:
var claims = new List<Claim>();
claims.Add(new Claim(ClaimTypes.Name, "Peter"));
claims.Add(new Claim(ClaimTypes.Email, "peter@domain.com"));
Run Code Online (Sandbox Code Playgroud)
但是,我应该如何存储"基于角色"的声明?例如:
用户是超级管理员.
claims.Add(new Claim("IsSuperAdmin, "true"));
Run Code Online (Sandbox Code Playgroud)
值参数"true"感觉完全冗余.如何使用索赔表达此陈述?
tra*_*max 27
这已经由框架为您完成.当用户登录时,所有用户角色都将添加为声明类型为的声明,ClaimTypes.Role值为角色名称.
当您执行IPrincipal.IsInRole("SuperAdmin")框架时,实际检查用户是否存在具有类型ClaimTypes.Role和值SuperAdmin的声明.
所以不需要做任何特别的事情.只需将用户添加到角色即可.
JCS*_*JCS 17
您可以使用ClaimType 角色存储角色
claims.Add(new Claim(ClaimTypes.Role, "SuperAdmin"));
Run Code Online (Sandbox Code Playgroud)