如何在虚拟路由 url 上使用表单身份验证(asp.net 路由和表单身份验证)?
在 ~/tools/ 中,我有一个包含以下内容的 webconfig 文件:
<system.web>
<authorization>
<allow roles="admin" />
<deny users="*" />
</authorization>
</system.web>
对 ~/tools/mypage.aspx 的请求要求用户具有管理员角色。如果我使用 URL 路由并且将 ~/categories/mytools 请求路由到上述页面,则表单身份验证不需要用户具有管理员角色。如何在虚拟路由 URL 上使用表单身份验证?
所以我需要将其添加到我的 webconfig 中:
对于每个需要表单身份验证的虚拟网址?如果必须对每个定向到“受保护”目标页面的 URL 执行此操作,则似乎是重复的。还有其他解决方案吗?
In ~/tools/ I have a webconfig file that contains the following:
<system.web>
<authorization>
<allow roles="admin" />
<deny users="*" />
</authorization>
</system.web>
Requests to ~/tools/mypage.aspx require the user to be in the admin role. If I use URL routing and have requests to ~/categories/mytools route to that above page, forms authentication does not require the user to be in the admin role. How do I use forms authentication on a virtual routed url?
So I need to add this to my webconfig:
for every virtual url that needs forms authentication? Seems repetitive if this has to be done with every url that is directed to a 'protected' destination page. Is there another solution?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
由于
~/categories/mytools
不是明确的~/tools
,因此不会调用 web.config 授权。即使使用虚拟路由。您需要跨目录复制 web.config 文件才能实现此效果。为了避免双重职责,您可能需要将这些条目放入根 web.config 中,列出其特定目录或文件以获得确切的权限。Since
~/categories/mytools
is not explicitly~/tools
the web.config authorization does not get called. Even with virtual routing. You will need to replicate the web.config files across the directories to achieve this affect. To avoid doing double duty, you might want to put these entries into the root web.config listing their specific directories or files for exact permissions.