1

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

从 ASP.NET C# 代码中,我应该能够检查如下内容:

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

MyApplicationReaders 和 MyApplicationAdmins 是 Active Directory 组的名称。

你能指点我一些简单的分步教程如何实现这一点吗?我没有找到任何:-(

4

2 回答 2

2

尝试更加努力地搜索。

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

<authentication mode="Windows" />

并添加授权规则:

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

页面寻求帮助。

PS:在您将 Windows 身份验证添加到您的应用程序后,您将能够检查经过User.IsInRole身份验证的用户。但在某些浏览器中,您的用户会被提示输入他们的 Windows 凭据。

于 2012-07-16T12:56:34.180 回答
1

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

为了使用 IsInRole(),您必须填充 User Principal 对象。最简单的方法是在Global.asax 事件 BeginRequest中。另请查看创建自定义角色提供者

于 2012-07-16T13:06:30.037 回答