我正在开发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。