【问题标题】:ASP.NET active directory authentication User.IsInRoleASP.NET 活动目录身份验证 User.IsInRole
【发布时间】:2012-07-16 12:36:02
【问题描述】:

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

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

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

MyApplicationReaders 和 MyApplicationAdmins 是 Active Directory 组的名称。

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

【问题讨论】:

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


    【解决方案1】:

    尝试更加努力地搜索。

    你必须在配置文件中添加认证方法:

    <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 凭据。

    【讨论】:

      【解决方案2】:

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

      为了使用 IsInRole(),您必须填充 User Principal 对象。最容易做到这一点的地方是Global.asax event BeginRequest。另请查看创建Custom Role Provider

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-09-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多