ASP.NET中的Windows身份验证检查特定用户安全组

ASP.NET中的Windows身份验证检查特定用户安全组,asp.net,authentication,active-directory,windows-authentication,Asp.net,Authentication,Active Directory,Windows Authentication,我正在Active Directory/IIS/ASP.NET 4.5环境中创建常规信息门户。除其他事项外,该门户将链接到多个人员申请表,具体取决于它所针对的实体(赌场与赌场外的部落)。我从赌场的申请表开始,在收到电子邮件提交后,我现在正在进行身份验证。所有内容都使用母版页进行布局 我的用户身份验证计划是使用Windows身份验证来检查登录到工作站的用户,然后检查该用户是否属于我们专门为能够访问请求表单的用户设置的特定安全组。请注意,我不想锁定整个站点,而是锁定站点上的各个页面。此外,可以访问赌

我正在Active Directory/IIS/ASP.NET 4.5环境中创建常规信息门户。除其他事项外,该门户将链接到多个人员申请表,具体取决于它所针对的实体(赌场与赌场外的部落)。我从赌场的申请表开始,在收到电子邮件提交后,我现在正在进行身份验证。所有内容都使用母版页进行布局

我的用户身份验证计划是使用Windows身份验证来检查登录到工作站的用户,然后检查该用户是否属于我们专门为能够访问请求表单的用户设置的特定安全组。请注意,我不想锁定整个站点,而是锁定站点上的各个页面。此外,可以访问赌场申请表的人不应访问一般部落申请表,反之亦然

我见过几种方法来完成这样的事情,但它们似乎都不适合我正在做的事情。在被建议使用Trace.Warn()而不是Console.WriteLine()之后,我设法让页面检查登录用户的身份,我在跟踪结果中看到了这一点。然而,我在让它检查用户组时遇到了一个障碍,更不用说检查他们是否属于应该能够看到页面的特定组了。我这样做的最佳方式是什么?

如果您可以直接使用Windows身份验证并希望保护用户所属的组,那么使用web.config和不同安全级别的单独目录就非常简单了

只需将请求表单放在单独的子目录中,而不是放在同一个子目录中

您可以为web应用程序设置一个目录结构,如下所示

My web application root
|__ web.config
   |__ Sub directory1
      |__ web.config
   |__ Sub directory2
      |__ web.config
在web应用程序根目录中的web.config中,您可以授予更多访问权限,组安全组1、安全组2、安全组3将能够查看根目录中的页面

<system.web>
    <authentication mode="Windows" />
    <authorization>
        <allow roles="Secure group 1, Secure group 2, Secure group 3" />
        <deny users="*, ?" />
    </authorization>
    ...
</system.web>

禁用除Windows身份验证之外的其他身份验证方法

如果您可以直接使用Windows身份验证并希望保护用户所属的组,那么对于每个不同的安全级别使用web.config和单独的目录就非常简单了

只需将请求表单放在单独的子目录中,而不是放在同一个子目录中

您可以为web应用程序设置一个目录结构,如下所示

My web application root
|__ web.config
   |__ Sub directory1
      |__ web.config
   |__ Sub directory2
      |__ web.config
在web应用程序根目录中的web.config中,您可以授予更多访问权限,组安全组1、安全组2、安全组3将能够查看根目录中的页面

<system.web>
    <authentication mode="Windows" />
    <authorization>
        <allow roles="Secure group 1, Secure group 2, Secure group 3" />
        <deny users="*, ?" />
    </authorization>
    ...
</system.web>

禁用除Windows身份验证之外的其他身份验证方法


显示您的代码,以便我们了解您如何尝试检查组。或者至少提供一个框架,这样我们就可以看到方法签名应该是什么样子。展示你的代码,这样我们就可以看到你是如何检查组的。或者至少提供框架,这样我们就可以看到方法签名应该是什么样子。不需要数据库设置吗?这是我在现阶段试图避免处理的问题。如果使用Windows身份验证,则不会。数据库部分通常在您使用ASP.NET成员身份和表单身份验证时出现。我已经添加了在IIS中执行此操作的快速概述。好的!成功了。从长远来看,这是一个比在我的根web.config文件中使用“不需要数据库设置”膨胀更好的解决方案?这是我在现阶段试图避免处理的问题。如果使用Windows身份验证,则不会。数据库部分通常在您使用ASP.NET成员身份和表单身份验证时出现。我已经添加了在IIS中执行此操作的快速概述。好的!成功了。从长远来看,这是一个比使用