ASP.NET Forms Auth当所有其他应该被拒绝时,允许访问子目录中的
我有一个问题允许特定角色访问子目录中的特定页面.
我的ASP.NET应用程序有一个目录,?/ Forms / Administration,访问受限.有一个特定的文件,?/ Forms / Administration / Default.aspx,我想给予1个额外的用户角色访问权限以及Admin角色. 在?/ Forms / Administration中,我有一个web.config文件,如下所示: <?xml version="1.0" encoding="utf-8"?> <configuration> <system.web> <authorization> <allow roles="Administrator,User" /> <deny users="*"/> </authorization> </system.web> <location path="Forms/Administration/Default.aspx"> <system.web> <authorization> <allow roles="Administrator,User,AdditionalUser" /> </authorization> </system.web> </location> </configuration> 管理员用户工作正常,但AdditionalUser始终失败.我已经尝试了许多事情 – 将位置列为 <location path="Forms/Administration/Default.aspx"> 并作为 <location path="~/Forms/Administration/Default.aspx"> 来自第一个普遍规则的deny =“*”是先例吗?我试过改变 <deny users="*"/> 至 <deny users="?"/> 但是最终可以让AdditionalUser访问所有内容.建议? 编辑:我试图把位置特定的允许在通用拒绝规则之前,以防止顺序重要.同样的问题. 更新:我显然在这里遗漏了一些东西:我删除了deny * config,只留下了特定于位置的部分.那么,而不是允许某些角色,我设置一个拒绝所有(*).但是,当我登录时,根本不会否认我.我甚至将规则缩小为不具体的文件,但适用于整个目录,并不代表我任何东西.然而,原始的非定位特定规则做的工作,所以我知道这个配置文件正在被读取. <?xml version="1.0" encoding="utf-8"?> <configuration> <location path="Forms/Administration"> <system.web> <authorization> <deny users="*" /> </authorization> </system.web> </location> </configuration> 解决方法
两件事情:
>该位置是相对于web.config文件,所以如果您的web.config已经在/ Forms /管理它应该被更正为: <location path="Default.aspx"> <system.web> <authorization> <allow roles="Administrator,AdditionalUser" /> </authorization> </system.web> </location> >为了澄清允许和拒绝的顺序,授权将根据其找到的第一个匹配应用,因此顺序非常重要.例如: <deny users="*" /> <allow users="Administrator" /> 管理员将被拒绝,因为它匹配第一个拒绝条目…即使您指定允许管理员用户在下一行.所以只允许管理员,正确的语法是: <allow users="Administrator" /> <deny users="*" /> 综上所述 如果我正在阅读你想要的内容,这可能是你想要的最终产品: <configuration> <system.web> <authorization> <allow roles="Administrator,User" /> <deny users="*"/> </authorization> </system.web> <location path="Default.aspx"> <system.web> <authorization> <allow roles="AdditionalUser" /> </authorization> </system.web> </location> </configuration> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 我在哪里可以报告ASP.NET浏览器文件的问题?
- asp.net-core – 将绝对文件路径转换为相对路径
- .NET Core多平台开发体验[3]: Linux (Windows Linux子系统)
- asp.net-mvc – ModelState.AddModelError – 未显示错误
- asp.net-mvc – MVC SelectList不能正常工作
- asp.net-mvc – Post Post和Comment应该在Post Aggregate中
- asp.net – 两个DLL中都存在“ModelClientValidationRule”
- asp.net-mvc – 在ASP.net MVC 2.0中使用Url.Content
- asp.net – AWS对象失效 – /如何确保从Edge中删除图像
- asp.net-mvc – 如何将通用列表传递给Html.ActionLink(…)?
- asp.net-mvc-4 – ASP.Net MVC 4和WebSecurity –
- ASP.NET MVC 3 Razor:初始化一个JavaScript数组
- 问题在ASP.NET中使用System.Web.Caching.Cache类
- 在ASP.NET Web应用程序中有未处理的异常是否可以
- asp.net – “当客户端检测到潜在危险的Request.
- asp.net-mvc-4 – 如何在iframe src中使用Url.Ac
- asp.net – 可以承受1000个并发用户的Web服务,响
- asp.net Ajax之无刷新评论介绍
- asp.net-mvc – MVC捆绑:错误403
- asp.net – Orchard – 从主题布局中获取内容的标