在 IIS 上托管后发送 403 状态代码时出现错误消息

Incorrect message coming when sending 403 status code after hosting on IIS

我在我的 .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);
        }


    }

当 运行 本地主机上的应用程序时,我收到正确的错误消息 ("Not Authorized")。但是,在使应用程序在 IIS 服务器中运行后,我得到了 403 状态代码的默认错误页面,因此我从 IIS 中删除了 403 状态的默认错误页面。现在我收到以下错误消息:

You do not have permission to view this directory or page.

谁能告诉我这条消息是从哪里来的?

我在阅读了一些博客和 Microsoft 文档后能够解决这个问题。我在 web.config 文件中添加了以下行以保持响应不变

 <httpErrors existingResponse="PassThrough" />

您可以在此处阅读有关 httpErros 的信息:microsoft docs