return 使用 GetUserInfo 方法的角色 asp.net 使用 EF 的 WebAPI2.0
return Roles with GetUserInfo method asp.net WebAPI2.0 with EF
我已经按照此处的说明实施了 Rolmanager:
http://johnatten.com/2014/10/26/asp-net-web-api-and-identity-2-0-customizing-identity-models-and-implementing-role-based-authorization/
现在我需要 API 到 return 网络角色 API 到 "client"(这是另一个 ASP.net 网站充当前端)所以我可以看到我应该对非管理员用户隐藏哪些视图。
我可以将角色添加到 Accounts 控制器中的 GetUserInfo 方法吗,或者我应该以不同的方式处理它,我应该如何实现它?
我最终在 AccountController 中这样实现了它:
public UserInfoViewModel GetUserInfo()
{
ExternalLoginData externalLogin = ExternalLoginData.FromIdentity(User.Identity as ClaimsIdentity);
var rols = ((ClaimsIdentity) User.Identity).Claims
.Where(c => c.Type == ClaimTypes.Role)
.Select(c => c.Value);
var UIM = new UserInfoViewModel
{
Email = User.Identity.GetUserName(),
HasRegistered = externalLogin == null,
LoginProvider = externalLogin != null ? externalLogin.LoginProvider : null,
roles = rols
};
return UIM;
}
然后将其添加到 UserInfoViewModel:
public IEnumerable<string> roles;
我已经按照此处的说明实施了 Rolmanager: http://johnatten.com/2014/10/26/asp-net-web-api-and-identity-2-0-customizing-identity-models-and-implementing-role-based-authorization/
现在我需要 API 到 return 网络角色 API 到 "client"(这是另一个 ASP.net 网站充当前端)所以我可以看到我应该对非管理员用户隐藏哪些视图。
我可以将角色添加到 Accounts 控制器中的 GetUserInfo 方法吗,或者我应该以不同的方式处理它,我应该如何实现它?
我最终在 AccountController 中这样实现了它:
public UserInfoViewModel GetUserInfo()
{
ExternalLoginData externalLogin = ExternalLoginData.FromIdentity(User.Identity as ClaimsIdentity);
var rols = ((ClaimsIdentity) User.Identity).Claims
.Where(c => c.Type == ClaimTypes.Role)
.Select(c => c.Value);
var UIM = new UserInfoViewModel
{
Email = User.Identity.GetUserName(),
HasRegistered = externalLogin == null,
LoginProvider = externalLogin != null ? externalLogin.LoginProvider : null,
roles = rols
};
return UIM;
}
然后将其添加到 UserInfoViewModel:
public IEnumerable<string> roles;