2010-04-21 4 views
5

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

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

Мой Web.Config файл:

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

Убедитесь, что у вас нет другого web.config в родительской папке сайта. –

+0

У вас есть файл с именем Default.aspx в корневом каталоге? Кроме того, добавьте версию .net framework, asp.net и asp.net mvc, которые вы используете. –

ответ

1

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

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