Я изменяю существующий код, который использует контроллеры веб-API, и я создал собственный атрибут авторизации, который работает нормально. Однако объект ответа, который должен быть json, имеет некоторый код html, который я никак не могу удалить. Есть идеи?
Мой контроллер:
[ApiAuthorize]
public HttpResponseMessage TestMethod(int id)
{
return Request.CreateResponse(HttpStatusCode.OK, new { message = "This is a message", id = id });
}
Атрибут авторизации:
public class ApiAuthorize : AuthorizeAttribute
{
/// <summary>
///
/// </summary>
/// <param name="httpContext"></param>
/// <returns></returns>
protected override bool IsAuthorized(HttpActionContext actionContext)
{
var isAuthenticated = base.IsAuthorized(actionContext);
return isAuthenticated;
}
/// <summary>
/// Handles unauthorized request response objects
/// </summary>
/// <param name="actionContext"></param>
protected override void HandleUnauthorizedRequest(HttpActionContext actionContext)
{
var response = actionContext.Request.CreateErrorResponse(System.Net.HttpStatusCode.Unauthorized, "You need to re-login");
actionContext.Response = response;
return;
}
}
И объект ответа я получаю:
<html><head><title>Object moved</title></head><body><h2>Object moved to
<a href="/website/ws_login.aspx?ReturnUrl=%2fUnderwriterWorkspace%2fTestMethod">here</a>.</h2>
{"Message":"You need to re-login"}
Как мне избавиться от этого кода html (html ... / html> )?