Проблема с авторизацией с IIS и MVC
Возникла проблема с настройками Авторизации. Сначала я получил:
<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 ответ
Имейте в виду, что существует фундаментальная разница в защищенных ресурсах между WebForms и MVC. В WebForms ресурсы, которые вы пытаетесь защитить, - это сами страницы, и поскольку страницы существуют на диске по общеизвестному пути, вы можете использовать Web.config для их защиты. Однако в MVC ресурсы, которые вы пытаетесь защитить, на самом деле являются контроллерами и действиями, а не отдельными путями и страницами. Если вы попытаетесь защитить путь, а не контроллер, ваше приложение, скорее всего, будет уязвимо с точки зрения безопасности.
В MVC по умолчанию все контроллеры + действия доступны всем пользователям, как аутентифицированным, так и гостевым. Для защиты контроллеров или действий был предоставлен атрибут [Authorize]. См. http://www.asp.net/learn/mvc/ для получения дополнительной информации.
Короче говоря, похоже, что для вашего приложения вы хотите присвоить каждому контроллеру, кроме контроллера по умолчанию и публичного контроллера, атрибут [Authorize].