我的网站(WebForms,C#4.0)正在使用Forms Auth,默认情况下需要登录:
<authorization>
<deny users="?"/>
</authorization>
我允许对公用文件夹(http://siteurl.com/member/public)进行未经身份验证的访问:
<location path="member/public">
<system.web>
<authorization>
<allow users="?"/>
</authorization>
</system.web>
</location>
一切正常。然后,我添加了一个路由(RouteTable.MapPageRoute(...)),以便
http://siteurl.com/member/public/view.aspx?username=someusername
可以通过访问:
来访问http://siteurl.com/member/view/someusername
我的问题是 - 现在我还需要向web.config添加成员/视图位置以允许unauth访问它,所以我必须在技术上有两个条目相同的位置:
<location path="member/public"> <!-- physical location -->
<system.web>
<authorization>
<allow users="?"/>
</authorization>
</system.web>
</location>
<location path="member/view"> <!-- route -->
<system.web>
<authorization>
<allow users="?"/>
</authorization>
</system.web>
</location>
我会在成员/公共文件夹中有一堆到那些路由的路由,所以看起来我必须在web.config中列出每个路由,这听起来不对...
有没有办法告诉ASP.NET自动将物理路径身份验证规则应用于路由,以便我只需要指定对成员/公共的unauth访问权限,所有到该位置的路由都会自动获得访问权限?
谢谢!