我想在ASP.NET MVC中针对401显示我的web.config错误页面,只有404和默认错误页面正常工作。身份验证过程是我自己的,不使用.net身份框架。
我在控制器操作方法中抛出新的401异常。
动作:
/
web.config
[HttpGet]
[HandleError]
public ActionResult Delete(int id)
{
//if (user.IsInRole(RoleType.DELETE))
if (myOwnUserClass.IsInRole(RoleType.DELETE))
{
return View();
}
else
{
return new HttpStatusCodeResult(401);
//return PartialView("_unauthorize");
}
}
我得到默认的401错误页面,而不是我自己的。
Default 401 error page similar to this
我还搜索了Stack Overflow,但这些答案对我没有用。
答案 0 :(得分:1)
您可以尝试停用customErrors
,而是使用httpErrors
来处理这些错误。
<system.web>
<customErrors mode="Off" />
<!-- other tags removed for brevity -->
</system.web>
<system.webServer>
<httpErrors errorMode="Custom" existingResponse="Auto">
<clear />
<error statusCode="401" responseMode="ExecuteURL" path="/Error/Unauthorized" />
<error statusCode="404" responseMode="ExecuteURL" path="/Error/NotFound" />
<error statusCode="500" responseMode="ExecuteURL" path="/Error" />
</httpErrors>
<!-- other tags removed for brevity -->
</system.webServer>