Jak widać, jest to pytanie od programisty innego niż web. Chciałbym mieć stronę ASPX, która w pewnych okolicznościach może wygenerować błąd 401 z kodu. Idealnie byłoby pokazać standardową stronę IIS.Jak programowo wygenerować błąd 401 na stronie ASP.NET
Odpowiedz
Ustaw Response.StatusCode, a następnie - jeśli chcesz zatrzymać wykonywanie - zadzwoń pod numer Response.End().
Powinieneś być w stanie użyć następujących, zgodnie z MSDN.
Throw New HttpException(401, "Auth Failed")
Edit Po obejrzeniu innych odpowiedzi określające kod statusu byłby bardziej odpowiedni.
Response.StatusCode = 401;
Response.End();
Nie mam pojęcia, dlaczego to zostało odrzucone - to prawie tak samo jak moja (głosowana w górę) odpowiedź, tylko w formie kodu. Oczywiście, nie ma linków, które * mogą * być przydatne, ale wciąż jest to doskonała odpowiedź ... –
Całkowicie zgadzam się z Jonem. Ponieważ nie mogę zaakceptować dwóch odpowiedzi, zaakceptowałem odpowiedź Jona i głosowałem za nią. Jest kilka rzeczy, które powinienem sam wymyślić, ale to dało mi przewagę. Dzięki! –
Prawdopodobnie został odrzucony, ponieważ został przesłany tuż po @ jon, więc wyglądało to na odpowiedź typu "piggy-back" (chociaż obie były napisane jednocześnie). Dzięki za awanse:) –
Chyba wciąż wolą:
throw new HttpException(401, "Auth Failed")
Nie sądzę metoda Response.StatusCode
wyzwala niestandardowych błędów zdefiniowane w pliku web.config, na przykład
<customErrors mode="On" defaultRedirect="GenericErrorPage.htm">
<error statusCode="401" redirect="AuthFailed.htm" />
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
Rzucanie nowego wyjątku zdecydowanie wyzwala błędy niestandardowe.
Być może używasz narzędzia do rejestrowania błędów w całej aplikacji, na przykład ELMAH lub coś podobnego, i nie sądzę, aby została tam również zapisana metoda Response.StatusCode
.
Uwaga: Widzę teraz pytanie, które mówi, że najlepiej powinna być wyświetlana standardowa strona błędu IIS. Oczywiście, strony błędów niestandardowych są niepotrzebne . W takim przypadku użyłbym metody Response.StatusCode
.
Hej, to jest niesamowite! Właśnie to, co potrzebowałem wiedzieć! –
Jeden dodatkowy komentarz.
Jeśli część strony została już zapisana w buforze wyjściowym, ważne jest, aby wyczyścić zawartość buforowaną lub strona może nie być wyświetlana poprawnie.
Jest to dość prawdopodobne w środowisku szablonowym. na przykład Strony wzorcowe ...
Response.ClearContent();
Response.StatusCode = 401;
Response.End();
- 1. Przyjazny dla użytkownika ASP.NET MVC błąd 401
- 2. wygenerować plik .mht programowo
- 3. Serwer zdalny zwrócił błąd: (401) Nieautoryzowany. Używanie CSOM w ASP.NET
- 4. GCM Nieautoryzowany błąd 401
- 5. Jak używać ramki na stronie ASP.NET?
- 6. Jak mają encje HTML na stronie asp.net?
- 7. base.OnLoad (e) na stronie ASP.NET
- 8. Umieść ASP.NET na stronie wordpress
- 9. Jak programowo wygenerować plik PDF z dowolnego dokumentu na OSX?
- 10. Jak programowo wygenerować schemat XML z typu?
- 11. Przeglądarka raportów SSRS + Poświadczenia ASP.NET 401 Wyjątek
- 12. Błąd: Serwer zdalny zwrócił błąd: (401) Nieautoryzowany
- 13. NoLinkedYoutubeAccount błąd 401 podczas przesyłania filmów na Youtube z java
- 14. Token sieciowy ASP.NET JSON "401 Nieautoryzowane"
- 15. Gromadzenie statystyk na stronie mvc asp.net?
- 16. Jak programowo strona na następnej/poprzedniej stronie w jqGrid
- 17. Wdrażanie wyszukiwania na stronie internetowej ASP.NET MVC
- 18. Jak wygenerować plik APK programowo za pomocą kodu Java
- 19. ASP.NET MVC: AuthorizeAttribute na domyślnej stronie
- 20. C# hasło TextBox na stronie ASP.net
- 21. Zabezpieczanie kanałów informacyjnych Elmah na stronie ASP.NET
- 22. Wystąpił błąd "Dostawca napotkał nieznany błąd" podczas próby WebSecurity.CreateAccount na stronie asp.net
- 23. Jak zwrócić 401 zamiast 302 w ASP.NET Core?
- 24. Serwer zdalny zwrócił błąd: (401) Nieautoryzowany
- 25. Zdalny serwer zwrócił błąd: (401) niefachowo SharePoint
- 26. laravel paszport daje 401 błąd Nieuwierzytelnione
- 27. Buforowanie nie działa poprawnie na mojej stronie ASP.NET MVC?
- 28. Tridion 2011 SP1 - Błąd - Serwer zdalny zwrócił błąd: (401) Nieautoryzowany
- 29. Jak wdrożyć Przenoszenie treści/tekstu na stronie internetowej. w asp.net
- 30. Jak kontrolować elementy na stronie głównej asp.net ze strony podrzędnej
Próbowałem tego i gdy sprawdziłem odpowiedzi HTTP w przeglądarce, mam 500 (wewnętrzny błąd serwera) zamiast 401 (Nieautoryzowane) – dreamerkumar
Ponadto, nie rzuca wyjątkiem gorsze pod względem wydajności? – dreamerkumar
Naprawdę nie obchodzi mnie, co jest preferowane. Ta metoda jest krótsza i łatwiejsza do zapamiętania, więc używam jej. – Brad