Wie ein 401-Fehler programmatisch in einer ASP.NET-Seite generieren
-
03-07-2019 - |
Frage
Wie Sie sehen dies eine Frage von einem nicht Web-Entwickler ist. Ich mag eine ASPX-Seite haben, die unter bestimmten Umständen einen 401 Fehler von Code erzeugen kann. Im Idealfall würde es die IIS-Standard Seite zeigen.
Lösung
Response.StatusCode und dann - wenn Sie stoppen Ausführung benötigen - rufen Sie Response.End ( ) .
Andere Tipps
Response.StatusCode = 401;
Response.End();
Ich glaube, ich immer noch lieber:
throw new HttpException(401, "Auth Failed")
Das glaube ich nicht die Response.StatusCode
Methode in der Datei web.config definiert benutzerdefinierte Fehler auslöst, z.B.
<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>
Werfen eine neue Ausnahme auf jeden Fall individuelle Fehler auslöst.
Auch könnte eine Anwendung weite Fehlerprotokollierung Anlage verwenden, wie ELMAH oder etwas, und ich glaube nicht, das Response.StatusCode
Methode dort angemeldet sein würde, auch nicht.
Hinweis: Ich sehe jetzt die Frage gesagt, dass im Idealfall sollte die Standard-IIS-Fehlerseite angezeigt. Offensichtlich sind die benutzerdefinierte Fehlerseiten sind nicht gesucht . Ich würde die Response.StatusCode
Methode in diesem Fall verwendet werden.
Es soll möglich sein, nur die folgende Verwendung gemäß
Ein weiterer Kommentar. Wenn ein Teil der Seite bereits in den Ausgangspuffer geschrieben worden ist, dann ist es wichtig, dass Sie klar jeder gepufferte Inhalt oder die Seite nicht richtig angezeigt werden können. Dies ist sehr wahrscheinlich in einer Templat-Umgebung. z.B. Masterseiten ... Response.ClearContent();
Response.StatusCode = 401;
Response.End();