customerrors für 401.2 in ASP.NET
Habe ich erfolgreich umgesetzt rollenbasierte Autorisierung in ASP.NET. Wenn eine person nicht über die erforderlichen Rolle, die er zu sehen bekommt, ist ein Fehler-Seite für 401.2-nicht autorisiert.
Was möchte ich nun erreichen ist, um eine benutzerdefinierte 401 Seite in meiner Bewerbung und habe es weitergeleitet es über Einstellungen in der web.config. Ich versuchte dies:
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="401" redirect="NoAccess.htm" />
</customErrors>
Aber nicht erwischt. Muss ich haben, um es zu überschreiben, die in IIS statt? Ich hoffe nicht, denn das würde die machen immer Dinge, die bereitgestellt härter.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich lief in das gleiche problem vor kurzem, und es stellt sich heraus, dass dies eine der Eigenheiten bei der Verwendung der Windows-Authentifizierung.
Joshua Flanagan erstellt eine schön HttpModule eine Weile her, dass die customErrors-Abschnitt in Ihrer Website.config und Weiterleitung an die 401-Fehlerseite.
Die Portabilität der HttpModule ist schön, da macht es die Lösung ist wiederverwendbar und hält Ihre Globalen.asax sauber, aber es gibt nichts stoppen Sie von der Verkabelung bis Ihre EndRequest-Ereignis in der Globalen.asax mit seinen code, wenn Sie es wirklich wollten.
Wenn Sie ASP.NET MVC ist die Lösung nicht ganz so elegant.
Wenn Sie nicht möchten, fügen Sie ein HttpModule
im web.config
in global.asax.cs
Object reference not set to an instance of an object
Hier ist ein MVC-agnostischen Variante:
Im Web.config
In Global.asax.cs
Hier ist, was gut für mich gearbeitet.
Global.asax -
Web.config -
Dieser kümmert sich um die Doppel-401 vor einem 200-Problem als gut.
Auch umgeht die lästigen firefox popup-Authentifizierung.