【发布时间】:2020-09-28 08:11:28
【问题描述】:
我在我的 .net MVC 应用程序中创建了一个自定义授权过滤器,用于基于角色的授权。当用户在 handleunauthorizedRequest 方法中未获得授权时,我发送 403 状态码和自定义错误消息(请参阅下面的代码)
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
if (!this.Roles.Split(',').Any(filterContext.HttpContext.User.IsInRole))
{
filterContext.HttpContext.Response.StatusCode =(int) HttpStatusCode.Forbidden;
filterContext.HttpContext.Response.Write("Not Authorized");
filterContext.Result = new EmptyResult();
//filterContext.Result = new HttpStatusCodeResult(HttpStatusCode.Forbidden, "Not Authorized");
}
else
{
base.HandleUnauthorizedRequest(filterContext);
}
}
在本地主机上运行应用程序时,我收到了正确的错误消息(“未授权”)。但是,在使应用程序在 IIS 服务器中运行后,我得到了 403 状态代码的默认错误页面,因此我从 IIS 中删除了 403 状态的默认错误页面。现在我收到以下错误消息:
您无权查看此目录或页面。
谁能告诉我这条消息来自哪里?
【问题讨论】:
标签: .net asp.net-mvc http-status-code-403 action-filter asp.net-authorization