ASP.NET MVC: AuthorizeAttribute на странице по умолчанию - PullRequest
5 голосов
/ 21 апреля 2010

Контроллер по умолчанию в моем проекте ASP.NET MVC украшен атрибутом [Authorize]. Когда я развертываю веб-сайт на своей машине для разработки и получаю доступ к веб-сайту, я перенаправляюсь на страницу входа (определенную в разделе формы loginUrl Web.Config). Результат: все работает как положено.

Когда я публикую веб-сайт на нашем рабочем сервере (Windows Server 2008, IIS 7, DefaultAppPool) и захожу на веб-сайт, в адресной строке отображается ожидаемый адрес (/Account/LogOn?ReturnUrl=*my_expected_return_url*), но на странице отображается сообщение «У вас нет разрешение на просмотр этого каталога или страницы. " вместо страницы входа. Если я удалю атрибут [Authorize] на контроллере / действии по умолчанию, страница отобразится правильно.

Мой файл Web.Config:

sessionState mode="InProc" timeout="30"  
     authentication mode="Forms"  
        forms loginUrl="~/Account/LogOn" timeout="2880"

1 Ответ

1 голос
/ 23 апреля 2010

Есть ли в вашем файле web.config раздел, позволяющий неавторизованным пользователям получать доступ к странице ~/Account/LogOn?

<configuration>
  <location path="~/Account/LogOn">
    <system.web>
      <authorization>
        <allow users="*" />
        <allow users="?" />
      </authorization>
    </system.web>
  </location>
</configuration>
...