Лучшие практики с проверкой подлинности с помощью форм и маршрутизацией? - PullRequest
2 голосов
/ 23 сентября 2010

Мой сайт (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, и все маршруты к местоположению автоматически получат доступ?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...