【问题标题】:IIS and Active Directory PermissionsIIS 和 Active Directory 权限
【发布时间】:2014-04-29 18:26:55
【问题描述】:

我已经为我的公司内部网建立了一个 ASP.NET 网站。它使用 Windows 身份验证,我们使用活动目录。我想要做的是限制本网站的某些页面(添加、删除),以便只有少数人可以访问它。关于如何做到这一点的任何想法?我想在活动目录中创建组,这样我就可以将人员添加到他们,他们可以自动访问这些受限页面。

感谢您的帮助

【问题讨论】:

    标签: asp.net iis active-directory


    【解决方案1】:

    您只需要告诉 ASP.NET 要保护什么以及如何保护。这是通过您的 web.config 设置完成的。例如,如果您更改 ASP.NET 应用程序的 web.config 以反映以下内容:

    <system.web>
         <authentication mode=“Windows“ /> = Windows AD Auth
         <identity impersonate=“true“/> 
         <authorization>
            <allow users=“*“/>  = Only allow authenticated users into the web site
            <deny users=“?“/>  = Deny unauthenticated users         
         </authorization>
    </system.web>
    

    然后添加位置配置部分,只允许某些角色访问应用程序的某些部分。角色转换为 Active Directory 组,例如:

    <location path="Admin">
        <system.web>
          <authorization>
            <allow roles=“BUILTIN\Administrators“ /> = only allow users of this AD Group
            <deny users=“*“/> = Deny everyone else
          </authorization>
        </system.web>
      </location>
    

    这告诉 ASP.NET 只允许名为“管理员”的 Active Directory 组中的用户访问该文件夹中的页面。

    此外,web.config 文件中位置节点的“路径”设置可以设置为应用程序的单个文件,如果它们没有分离到一个文件夹中。

    如果您的应用是 MVC,则位置“路径”变量对应于调用端点所采用的路径。这些通常在您的 RouteConfig.cs 文件中指定。例如,如果您有一个 MVC 网址“website.com/viewA/show”与“website.com/AdminView/show”。要限制对 viewA 的访问,路径将是“viewA”和“AdminView”,用于限制对 AdminView url 的访问。

    【讨论】:

    • 我这样做了,将第一个代码放在配置节点下,第二个直接放在 system.web 节点下。它现在不会让任何人通过服务器登录它。但是当我直接从 IIS 启动它时,它工作正常,但允许我查看我试图限制的页面,而且我不在我允许的组中。有任何想法吗?另外,我所有的观点都在一个文件夹下
    • 如果您的应用程序是 MVC,则位置“路径”变量对应于调用视图所采用的路径。例如“website.com/viewA/show”与“website.com/AdminView/show”。
    • 哦,我明白了。所以我尝试了 ,站点名称是医生,DoctorsList 文件夹包含删除页面以及所有其他视图。但是 IIS 给了我一个错误,说我的配置文件不是格式良好的 xml
    • 正确,即格式错误的 xml。尝试: ... 前提是“/views/DoctorsList/Delete.aspx”是您应用程序中的实际 url。
    • 哦,我一直以为“路径”是文件夹路径。我输入了实际的 URL 路径,并没有引发 xml 错误。但是由于某种原因,当我打开模拟时,它给了我“NT 权限\匿名登录”错误。它正在连接到 SQL 服务器,但是当模拟关闭时不会发生此错误。并且凋谢或不模拟是打开的,它会在屏幕顶部识别用户。
    【解决方案2】:

    您将使用文件/文件夹权限来限制用户访问这些页面。因此,如果您有一个名为 HR 的文件夹,其中包含一些页面,您将在 HR 文件夹上设置文件夹权限,以允许对 Active Directory 中的 HR 组进行读取访问。

    【讨论】:

    • 我试图这样做。问题是我认为人们是通过 IIS_IUSR 组进行身份验证的,我可以将人员添加到该组,但我无法指定我希望他们能够访问哪些页面。
    • 如果您的 web.config 中有身份 impersonate=true,则不应通过 IIS_IUSR 对其进行身份验证。此外,在 IIS 中,单击网站属性中的身份验证图标并禁用匿名身份验证并启用 Windows 身份验证。
    • 我已关闭匿名功能。但是当我将 impersonate 设置为 true 时,该站点将根本无法运行。
    • 您能否检查您的 AD 用户帐户是否有权访问 Web 根文件夹?
    • 是的,它确实有权查看它。奇怪的是,该站点在直接从 IIS 启动时可以工作,但在网络中的其他任何地方都无法访问。
    猜你喜欢
    • 2023-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多