ASP.NET MVC Intranet应用程序。基于角色的身份验证链接到应用程序中的用户表

时间:2014-04-22 19:23:41

标签: c# asp.net-mvc windows-authentication

我正在编写将使用Active Directory身份验证的ASP.NET MVC应用程序。

我不希望用户必须登录我希望能够通过域凭据对用户进行身份验证并为其分配角色。

我希望能够使用某种管理视图为AD用户和AD组分配角色。

有没有资源可以解决这个问题?

最重要的是,我希望能够将域凭据与我的应用程序中的User表链接(它本质上是一个Helpdesk Ticket应用程序)。如何成功将应用程序数据库中的用户链接到Windows身份验证帐户?

由于

如果没有意义,请询问澄清。

MVC 4 Intranet Authentication with Custom Roles

这似乎是一个很好的资源,但任何建议都会很棒

1 个答案:

答案 0 :(得分:3)

Windows身份验证将验证AD上是否存在用户,如果要验证用户表中是否存在用户,则可以使用CustomAttribute(我使用EntityFramework):

public class AuthorizeDB : AuthorizeAttribute
{
    ProjectDB db = new ProjectDB();

    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
        if (httpContext == null)
            return false;

        var name = httpContext.User.Identity.Name;
        return db.Users.FirstOrDefault(u => u.UserName == name) != null;
    }
}

并使用[AuthorizeDB]装饰您的类,或者为整个应用程序设置它。 User.Identity.Name将以Domain\Username

的形式出现

如果您在应用程序中使用自定义角色,则应与任何其他类型的身份验证大致相同。将用户与角色链接,然后验证他们所处的角色。