我开发了一个ASP.NET Intranet应用程序。现在我被要求为应用程序添加身份验证 - 它应该基于Active Directory。用户不应填写任何登录名或密码。
从ASP.NET C#代码中我应该可以检查这样的内容:
if (User.IsInRole("MyApplicationReaders"))
{
doSomething();
}
else if (User.IsInRole("MyApplicationAdmins"))
{
doSomethingElse();
}
MyApplicationReaders和MyApplicationAdmins是Active Directory组的名称。
能否请您指点一些简单的分步教程如何实现这一目标?我没找到任何: - (
答案 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。