我在 MVC5 应用程序中使用 ASP.NET Identity 版本2,并且没有任何问题地操纵角色管理。另一方面,我希望让 LDAP 用户能够使用 LDAP 凭据登录该应用程序。但是,我不确定以下方法是否合适,以便正确使用 ASP.NET标识和 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 吗?提前谢谢。