我已经在.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状态的默认错误页面。现在,我收到以下错误消息:
您无权查看此目录或页面。
任何人都可以告诉我此消息来自何处?