将ASP.NET标识与LDAP

时间:2016-04-04 12:40:35

标签: asp.net asp.net-mvc ldap asp.net-identity asp.net-identity-2

我在 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 吗?提前谢谢。

0 个答案:

没有答案