我有一个文件夹与几个调查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>
解决方法
在你的问题上,你说你有一个文件夹名称,但是在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\heilened" /> <deny users="*" /> </authorization> </system.web> </location>