组织单位的MVC Active Directory身份验证

时间:2017-01-11 21:07:16

标签: asp.net-mvc asp.net-mvc-4 active-directory windows-authentication organizational-unit

我想在我的.NET MVC Web应用程序中回收AD安全性,并且如果可能的话,几乎没有本地安全表。

我可以使用Authorize标记轻松实现此目的:

[Authorize(Roles="GoldDigger")]
public ActionResult Go(int companyKey)
{
    var something = GetData(companyKey);
    return something;
}

但是,我有可以访问多家公司(Acme,StoreCo等)的用户,并且GoldDigger位于某些公司,但不是所有公司。假设我为每个公司创建了一个Active Directory OU容器,因此我有以下AD角色结构:

  • NTWRK\Acme\GoldDigger
  • NTWRK\StoreCo\GoldDigger
  • NTWRK\PetCo\GoldDigger
  • NTWRK\Megalomart\GoldDigger

据我所知,我不能再使用Authorize标记,因为所需的AD角色由CompanyKey参数的值决定。

此时我最好的选择是避免在每个控制器方法的顶部添加以下内容?是否可以在会话开始时或之前强制授权的上下文到特定(非硬编码)组织单位?

if (!AuthenticateAdRoleByCompany(companyKey, "Role Name Here"))
{
    Explode();
    return;
}

0 个答案:

没有答案