我在 MVC5 应用程序中使用了 ASP.NET Identity 版本2并且没有任何问题地操纵角色管理 . 另一方面,我想让我们的 LDAP 用户能够使用他们的 LDAP 凭据登录该应用程序 . 但是,我不确定以下方法是否合适,以便正确使用 ASP.NET IdentityLDAP . 场景是这样的:

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 吗?提前致谢 .