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"
Upewnij się, że nie masz innego pliku web.config w folderze nadrzędnym witryny. –
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. –