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

问题描述 投票:0回答:1

我已经在.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
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.