我在 MVC5 应用程序中使用了 ASP.NET Identity 版本2并且没有任何问题地操纵角色管理 . 另一方面,我想让我们的 LDAP 用户能够使用他们的 LDAP 凭据登录该应用程序 . 但是,我不确定以下方法是否合适,以便正确使用 ASP.NET Identity 和 LDAP . 场景是这样的:
1) 用户使用他/她的LDAP凭据登录系统 .
2) 检查用户是否在LDAP中有这样的用户:
2.a) 如果用户已通过身份验证,则将通过从ASP.NET标识角色表(AspNetRoles)检索角色将所有角色分配给用户 .
2.b) 如果用户已通过身份验证,但没有为该用户分配角色,则默认角色将添加到ASP.NET标识角色表(AspNetRoles),并且此默认角色将分配给用户,如下所示:
void Application_PostAuthenticateRequest()
{
if (Request.IsAuthenticated)
{
string[] roles = GetRolesForUser(User.Identity.Name);
var id = ClaimsPrincipal.Current.Identities.First();
foreach (var role in roles)
{
id.Claims.Add(new Claim(ClaimTypes.Role, role));
}
}
}
有没有更好的方法来执行此操作?我应该把这个方法放到 AccountController 吗?提前致谢 .