我有一个包含多个调查aspx页面的文件夹。我必须在这些aspx页面上设置权限。有5个不同的页面,只有一个允许某些用户访问。我添加了一个web.config文件来允许和拒绝用户,但它不起作用。如果我允许我的用户名并添加deny="?"
我没有访问权限,但是如果我添加了另一个用户,请取出我的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。
EDIT 似乎权限设置不正确。但它仍然无法正常工作。当我拒绝*时,但允许USER1即使提示登录请求,用户也无法访问。登录窗口对话框即使已使用访问权限,也会继续弹出3次。让它否认? (匿名)允许每个人都有权访问,即使我拿出拒绝并且只有USER1的allow标签,其余的用户仍然可以访问...我现在在本地运行,但即使在IIS上设置(Windows和基本身份验证)的身份验证完全相同....
EDIT 这是我正在使用的实际代码。此路径中只允许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>
答案 0 :(得分:13)
关于你的问题,你说你有一个文件夹名称但在web.config上你只给出了路径上的文件名。使用下面的foldername / filename.aspx。使用deny users =“*”而不是deny users =“?'
<location path="foldername/QualityCheckSurvey.aspx">
<system.web>
<authorization>
<allow users="DomainName\User2"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
修改强>
这看起来在同一个应用程序中有多个web.config文件。为了避免混淆,只需删除调查文件夹和根文件夹web.config上的那个,添加此代码。
<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<authentication mode="Windows" />
</authorization>
</system.web>
<location path="survey/QualityCheckSurvey.aspx">
<system.web>
<authorization>
<allow users="OEP\kevinh, OEP\shabierg, OEP\heilened" />
<deny users="*" />
</authorization>
</system.web>
</location>
我假设调查文件夹位于根文件夹中。
答案 1 :(得分:0)
<deny users="?" />
<allow users="DomainName\User2" />
<deny users="*" />
答案 2 :(得分:0)
那是满口的。当我将Windows身份验证添加到现有项目时,我遇到了这个问题。在它运作之前我需要做几件关键事情:
1.在解决方案资源管理器中,单击项目,然后按F4。这应该打开Project属性。
2.在项目属性中和开发服务器下,进行以下更改:
- 匿名身份验证:已禁用
- Windows身份验证:已启用
3.在Web.config
下的<system.web>
中包含以下内容:
<authorization>
<allow users="DOMAIN\user"/>
<deny users="*"/>
</authorization>
4。仍然在Web.config
下的<appSettings>
:
<add key="owin:AutomaticAppStartup" value="false"/>
这对我有用。如果我做错了,请告诉我
希望这将有助于在创建项目后使用Windows身份验证的未来个人。