ASP.NET活动目录身份验证User.IsInRole

时间:2012-07-16 12:36:03

标签: asp.net active-directory windows-authentication roleprovider

我开发了一个ASP.NET Intranet应用程序。现在我被要求为应用程序添加身份验证 - 它应该基于Active Directory。用户不应填写任何登录名或密码。

从ASP.NET C#代码中我应该可以检查这样的内容:

if (User.IsInRole("MyApplicationReaders"))
{
     doSomething();
}
else if (User.IsInRole("MyApplicationAdmins"))
{
     doSomethingElse();
}

MyApplicationReaders和MyApplicationAdmins是Active Directory组的名称。

能否请您指点一些简单的分步教程如何实现这一目标?我没找到任何: - (

2 个答案:

答案 0 :(得分:0)

尝试更努力地搜索。

您必须添加到配置文件身份验证方法:

<authentication mode="Windows" />

并添加授权规则:

<authorization>
  <allow users="DomainName\Bob, DomainName\Mary" />
  <allow roles="BUILTIN\Administrators, DomainName\Manager" />
  <deny users="*" />
</authorization>

这是page求助。

PS:在您的应用程序中添加Windows身份验证后,您可以检查User.IsInRole是否有经过身份验证的用户。但在某些浏览器中,您的用户将被要求输入他们的Windows凭据。

答案 1 :(得分:0)

您可以将IIS设置为自动验证用户,但通常会实施自己的授权方案。过去,我使用数据库将AD帐户映射到应用程序角色/权限。

要使用IsInRole(),您必须填充User Principal对象。最简单的地方是Global.asax event BeginRequest。另请参阅创建Custom Role Provider