Ich verwende Owin zum Hosten von WebAPI-Controllern. Ich habe Owin Middleware, die Authentifizierung durchführt und stellt die folgende, wenn die Authentifizierung fehlschlägt:Benutzerdefinierte Fehlerseite bei der Verwendung von Owin
context.Response.StatusCode = (int) HttpStatusCode.Unauthorized;
Wenn dies geschieht Ich möchte dem Benutzer eine HTML-Seite mit einigen Anweisungen angezeigt werden soll. (Wie, "Sie müssen sich anmelden.")
Im Moment bin ich nur Umleiten des Benutzers auf eine accessdenied.html-Seite, aber ich würde es vorziehen, wenn der Zugriff verweigert direkt angezeigt wurde, ohne dass der Benutzer umgeleitet wird (Ich möchte nicht, dass sich das Standortfeld im Webbrowser ändert).
Ich nehme an, ich könnte nur den HTML-Code im laufenden Betrieb generieren und der Antwort hinzufügen, indem ich beispielsweise den HTML-Inhalt einer Ressource lese.
Meine Frage ist: Ist es möglich, eine benutzerdefinierte Access-verweigerte Fehlerseite automatisch über die Konfiguration anzuzeigen? In „traditioinal“ ASP.NET war es möglich, in web.config custom einzurichten, aber dies scheint nicht mit Owin Selfhost zu arbeiten:
<customErrors>
<error statusCode="401" redirect="~/accessdenied.html"/>
</customErrors>
Dies funktioniert nicht für Eigenhosts, weil 'VirtualPathUtility' ein Teil von' System.Web' ist und IIS benötigt, um richtig zu arbeiten. –
Sie sollten stattdessen verwenden: 'request.Uri.AbsoluteUri.Replace (request.Uri.PathAndQuery, request.PathBase +"/Home/Fehler ")' – tmoreira
Wenn Sie Response.Redirect tun, wird es HTTP-Statuscode zu ändern 302. –