Проблема с авторизацией с IIS и MVC - PullRequest
2 голосов
/ 20 февраля 2009

Возникла проблема с настройками Авторизации. Сначала я получил:

<authorization>
  <deny users="?" />
</authorization>

Поэтому я запрещаю всем неизвестным пользователям и затем разрешаю им просматривать эти страницы:

<location path="Default.aspx">
  <system.web>
    <authorization>
      <allow users="*" />
    </authorization>
  </system.web>
</location>

<location path="Public">
  <system.web>
    <authorization>
      <allow users="*" />
    </authorization>
  </system.web>
</location>

Теперь к проблеме .. они могут получить доступ к Общим страницам и Default.aspx .. но не www.mydomain.com или www.mydomain.com/ .. поэтому www.mydmain.com/Default.aspx работает нормально. Так как же заставить их работать?

1 Ответ

11 голосов
/ 20 февраля 2009

Имейте в виду, что между защищенными ресурсами между WebForms и MVC есть принципиальная разница. В WebForms ресурсы, которые вы пытаетесь защитить, - это сами страницы, и поскольку страницы существуют на диске по общеизвестному пути, вы можете использовать Web.config для их защиты. Однако в MVC ресурсы, которые вы пытаетесь защитить, на самом деле являются контроллерами и действиями, а не отдельными путями и страницами. Если вы попытаетесь защитить путь, а не контроллер, ваше приложение, вероятно, имеет уязвимость безопасности.

В MVC по умолчанию все контроллеры + действия доступны всем пользователям, как аутентифицированным, так и гостевым. Для защиты контроллеров или действий предусмотрен атрибут [Authorize]. См. http://www.asp.net/learn/mvc/#MVC_Security для получения дополнительной информации.

Короче говоря, похоже, что для вашего приложения вы хотите присвоить каждому контроллеру , за исключением контроллера по умолчанию и контроллера Public, атрибут [Authorize].

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