カスタム 403 エラー ページを表示するように次のように設定Web.config
しましたが、何らかの理由でページが表示されません - それでもデフォルトのエラー ページが表示されます。404
同じものを使用するカスタムページが正しく表示されますErrorController
Web.Config
<customErrors mode="On" defaultRedirect="~/Error">
<error redirect="~/Error/NotFound" statusCode="404" />
<error redirect="~/Error/Forbidden" statusCode="403" />
</customErrors>
エラーコントローラー
public class ErrorController : BaseController
{
public ViewResult Forbidden()
{
Response.StatusCode = 403; //you may want to set this to 200
return View("Error403");
}
}
403 を生成する属性:
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = true)]
public class AuthorizeEMAttribute : System.Web.Mvc.AuthorizeAttribute
{
protected override void HandleUnauthorizedRequest(System.Web.Mvc.AuthorizationContext filterContext)
{
if (filterContext.HttpContext.Request.IsAuthenticated)
{
filterContext.Result = new System.Web.Mvc.HttpStatusCodeResult((int)System.Net.HttpStatusCode.Forbidden);
}
else
{
base.HandleUnauthorizedRequest(filterContext);
}
}
}