Мой сайт (WebForms, C # 4.0) использует проверку подлинности с помощью форм и по умолчанию требует входа в систему:
<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, чтобы разрешить несанкционированный доступ к нему, поэтому мне нужно иметь две записи для технически одного и того же местоположения:
<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>
У меня будет куча этих маршрутов к страницам в папке member / public, так что, похоже, мне нужно перечислить каждый из них в web.config, и это звучит неправильно ...
Есть ли способ сказать ASP.NET, чтобы автоматически применять правила аутентификации физического пути к маршрутизации, так что мне нужно только указать unauth-доступ к member / public, и все маршруты к местоположению автоматически получат доступ?
Спасибо!