Doceniam to pytanie jest trochę stary, ale może to komuś pomóc .
Dla 401 prawdopodobnie zobaczysz standardową nieautoryzowaną stronę 401, nawet jeśli dodałeś 401 do sekcji customerrors w twoim web.config. Czytam, że podczas używania IIS i Windows Authentication sprawdza się zanim ASP.NET zobaczy żądanie, stąd widzisz pustą stronę na Cassini i na IIS jest to własnie 401.
Dla mojego projektu redagowałem plik Global.asax aby przekierować na trasę, którą utworzyłem dla błędów 401, wysyłając użytkownika do widoku "Nieautoryzowane, aby to zobaczyć".
W Global.asax:
void Application_EndRequest(object sender, System.EventArgs e)
{
// If the user is not authorised to see this page or access this function, send them to the error page.
if (Response.StatusCode == 401)
{
Response.ClearContent();
Response.RedirectToRoute("ErrorHandler", (RouteTable.Routes["ErrorHandler"] as Route).Defaults);
}
}
aw Route.config:
routes.MapRoute(
"ErrorHandler",
"Error/{action}/{errMsg}",
new { controller = "Error", action = "Unauthorised", errMsg = UrlParameter.Optional }
);
iw sterowniku:
public ViewResult Unauthorised()
{
//Response.StatusCode = 401; // Do not set this or else you get a redirect loop
return View();
}
znaczy jeśli ja przenieść aplikację do IIS i powinni zobaczyć niestandardowa strona? czy powinienem zobaczyć standardową stronę IIS 401? –
Zobaczysz 401. –