mi rendo conto questa domanda è un po 'vecchio, ma questo potrebbe aiutare qualcuno .
Per un 401 probabilmente vedrete la pagina 401 non autorizzata standard, anche se avete aggiunto 401 alla sezione customerrors nel vostro web.config. Ho letto che quando si utilizza IIS e Windows il controllo avviene prima che ASP.NET veda la richiesta, quindi si veda la pagina vuota su Cassini e su IIS è proprio 401.
Per il mio progetto ho modificato il file Global.asax per reindirizzare a un percorso che avevo creato per errori 401, inviando l'utente alla vista "Non autorizzato per vedere questo".
Nella 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);
}
}
e nel Route.config:
routes.MapRoute(
"ErrorHandler",
"Error/{action}/{errMsg}",
new { controller = "Error", action = "Unauthorised", errMsg = UrlParameter.Optional }
);
e nel controller:
public ViewResult Unauthorised()
{
//Response.StatusCode = 401; // Do not set this or else you get a redirect loop
return View();
}
dire se mi trasferisco l'applicazione per IIS dovrei vedere il pagina personalizzata? o dovrei solo vedere la pagina standard di IIS 401? –
Vedrete il 401. –