2010-04-21 12 views
5

Domyślny kontroler w moim projekcie ASP.NET MVC jest ozdobiony atrybutem [Authorize]. Kiedy wdrażam witrynę na moim komputerze programistycznym i uzyskuję dostęp do strony internetowej, przekierowuję mnie na stronę logowania (zdefiniowaną w sekcji formularze loginUrl w Web.Config). Wynik: wszystko działa zgodnie z oczekiwaniami.ASP.NET MVC: AuthorizeAttribute na domyślnej stronie

Kiedy publikuję witrynę na naszym serwerze produkcyjnym (Windows Server 2008, IIS 7, DefaultAppPool) i uzyskuję dostęp do strony internetowej, oczekiwany adres jest wyświetlany na pasku adresu (/Account/LogOn?ReturnUrl=*my_expected_return_url*), ale na stronie wyświetla się komunikat "Nie masz uprawnień aby wyświetlić ten katalog lub stronę. " zamiast strony logowania. Jeśli usuniemy atrybut [Autoryzuj] na domyślnym kontrolerze/działaniu, strona wyświetli się poprawnie.

Mój plik web.config:

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

Upewnij się, że nie masz innego pliku web.config w folderze nadrzędnym witryny. –

+0

Czy masz plik o nazwie Default.aspx w katalogu głównym? Dodaj także wersję framework .net, asp.net i mvc asp.net, których używasz. –

Odpowiedz

1

Czy masz sekcję w Twojej web.config jawnie zezwala na występowanie upoważniony użytkownikom dostęp do strony ~/Account/LogOn?

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