我正在开发ASP.Net Web API应用程序,并且已使用AuthorizeAttribute进行身份验证。当身份验证失败时,执行的代码就是这个。

protected override void HandleUnauthorizedRequest(HttpActionContext actionContext)
    {
        HttpContext.Current.Response.AddHeader("AuthenticationStatus", "NotAuthorized");
        actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.Forbidden);
        return;
    }


这段代码的结果是显示来自浏览器的未授权请求页面,但是我想要显示的是我设计的自定义页面。我怎么做?任何帮助表示赞赏。

提前致谢。

最佳答案

我认为如果您使用的是WebApi,则无法从HandleUnathorizedRequest中重定向到自定义页面。代码结果显示“未经授权的请求”页面,因为这是您的浏览器响应403代码的方式。 WebApi可用于HttpMessage交换,默认情况下使用Json或Xml媒体类型。如果要以text / html格式返回自定义页面,则必须编写自己的媒体格式化程序,如此处所述:http://www.asp.net/web-api/overview/formats-and-model-binding/media-formatters

10-06 07:34