【发布时间】:2014-04-29 18:26:55
【问题描述】:
我已经为我的公司内部网建立了一个 ASP.NET 网站。它使用 Windows 身份验证,我们使用活动目录。我想要做的是限制本网站的某些页面(添加、删除),以便只有少数人可以访问它。关于如何做到这一点的任何想法?我想在活动目录中创建组,这样我就可以将人员添加到他们,他们可以自动访问这些受限页面。
感谢您的帮助
【问题讨论】:
标签: asp.net iis active-directory
我已经为我的公司内部网建立了一个 ASP.NET 网站。它使用 Windows 身份验证,我们使用活动目录。我想要做的是限制本网站的某些页面(添加、删除),以便只有少数人可以访问它。关于如何做到这一点的任何想法?我想在活动目录中创建组,这样我就可以将人员添加到他们,他们可以自动访问这些受限页面。
感谢您的帮助
【问题讨论】:
标签: asp.net iis active-directory
您只需要告诉 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 的访问。
【讨论】:
您将使用文件/文件夹权限来限制用户访问这些页面。因此,如果您有一个名为 HR 的文件夹,其中包含一些页面,您将在 HR 文件夹上设置文件夹权限,以允许对 Active Directory 中的 HR 组进行读取访问。
【讨论】: