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 – NullReferenceException在PipelineStepManager.
- asp.net-mvc – 如何使用asp.net mvc razor在视图中访问全局
- asp.net – 如何在SQL数据库中创建和存储用户定义的自定义字
- asp.net – Restful MVC Web Api继承
- asp.net-mvc – ASP.NET MVC路由问题
- asp.net-mvc-2 – 我可以从global.asax重定向到控制器操作吗
- asp.net – RegisterForEventValidation只能在渲染过程中调
- ASP.NET Cookie过期时间始终是1/1/0001 12:00 AM
- .net – HttpContext.Request和Request之间的区别
- oauth-2.0 – 在MVC6应用程序中的OAuth令牌到期
- asp.net – 避免在web.config中提供服务器连接字
- asp.net – 为什么当使用ADO.NET实体数据模型映射
- asp.net-mvc – IIS劫持CORS Preflight OPTIONS请
- asp.net – RegisterStartupScript不能使用Scrip
- asp.net – 对于在Azure部署的Web.config中存储密
- asp.net-mvc – 帖子上的Mvc模型ID 0
- vsdoc文件是否适用于vbscript?
- asp.net-mvc – 静态文件请求正在ASP.NET MVC3中
- asp.net-mvc – OwinStartup没有开始…为什么?
- 下载期间的ASP.net内存使用情况
