【发布时间】:2013-08-15 00:02:28
【问题描述】:
我有一个包含几个调查 aspx 页面的文件夹。我必须在这些 aspx 页面上设置权限。有 5 个不同的页面,只有一个允许某些用户访问。我添加了一个 web.config 文件来允许和拒绝用户,但它不起作用。如果我允许我的用户名并添加 deny="?" 我没有访问权限,但如果我添加另一个用户,请删除我的用户名并取消拒绝选项,我将获得登录系统的权限。如果我取消拒绝,我可以获得访问权限,但是所有用户都可以访问该页面。
添加我的用户凭据并拒绝我无法访问的所有匿名用户。有人可以指出我做错了什么的正确方向吗? 可能是它没有读取或获取我的 Windows 登录凭据吗?我正在使用 Visual Studio 2012,实体框架。
这就是我所做的:
//Web Config that allows and denies:
<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
<location path="QualityCheckSurvey.aspx">
<system.web>
<authorization>
<allow users="DomainName\User2" />
<deny users="?" />
</authorization>
</system.web>
</location>
</configuration>
我已将身份验证模式设置为 windows。
编辑 似乎权限设置不正确。但它仍然无法正常工作。当我拒绝 *,但允许 USER1 时,即使提示登录请求,用户也无法访问。即使用户有权访问,登录窗口对话框也会不断弹出 3 次。让它否认? (匿名)允许每个人都可以访问,即使我删除了拒绝并且只有 USER1 的允许标记,其余用户仍然可以访问......我现在在本地运行,但即使在 IIS 上设置那里的身份验证(Windows 和基本身份验证)完全相同....
编辑 这是我正在使用的实际代码。此路径“”中只允许 3 个用户。此 web.config 文件位于包含 5 种不同类型调查的调查文件夹中。只有这一项调查应该允许某些用户,其余的调查任何人都可以访问....
<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
<location path="QualityCheckSurvey.aspx">
<system.web>
<authorization>
<deny users="?" />
<allow users="OEP\kevinh, OEP\shabierg, OEP\heilened" />
<deny users="*" />
</authorization>
</system.web>
</location>
在应用程序根目录的主 web.cofin 中,我已将身份验证模式设置为 windows:
<authentication mode="Windows">
<!--<forms loginUrl="~/Account/Login.aspx" timeout="2880" />-->
</authentication>
【问题讨论】:
-
您使用的是哪个版本的 IIS?
-
项目是否启用了 Windows 身份验证?
-
@CodeCaster,是的,我已检查它是否已启用....
-
您的请求实际上来自“DomainName\User2”吗?您可能想要调试您的项目,并确保 Page.User 是该 ID(或 Page.User.Identity.Name)。
-
是的,域名\User2 正在工作...我已经编辑了 IIS 的 applicationhost.config 文件,它给了我一个使用我的凭据登录的弹出窗口,但它仍然不允许我访问它。弹出窗口直到现在才出现......
标签: asp.net authentication iis-7 web-config location