Odata Controller маршрутизация на внешнюю ссылку

Я генерирую внешнюю ссылку с токеном от контроллера OData; сгенерированная ссылка работает нормально, если я просматриваю эту ссылку отдельно, но всякий раз, когда вызов внутри метода контроллера OData не проходит. Я чувствую, что это может быть проблема с маршрутизацией. Маршрут не знает, как обработать этот запрос.

Метод ODataController:

[HttpGet]
[ODataRoute("Token")]
//[Authorize]  Do not know why it is alsways false
[AuthorizeWithAntiForgeryHeader]
public string Token()
{
    return (Models.Token.NewToken().ToString());
} 

внутри авторизованного атрибута неавторизованный запрос

protected override void HandleUnauthorizedRequest(HttpActionContext actionContext)
{
    if (this._AntiForgeryHeaderWasChecked)
    {
          http://127.0.0.1/login/AuthenticateUser?tok=abed-233de-frg23-45fd231;
        //RedirectToLogin(actionContext);
        //actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.BadRequest, "Invalid request token");

    }
    else
    {
        base.HandleUnauthorizedRequest(actionContext);
    }
}

Пример моей конфигурации маршрутизации в webAPIConfig

public static void Register(HttpConfiguration config)
{
    var cors = new EnableCorsAttribute(origins: "*", headers: "*", methods: "*", exposedHeaders: "X-Antiforgery-Token,Authorization");
    config.EnableCors(cors);
    ODataModelBuilder builder = new ODataConventionModelBuilder();

    FunctionConfiguration entFnToken = builder.Function("Token");
    entFnToken.Returns<string>();

    config.MapODataServiceRoute(routeName: "ODataRoute", routePrefix: "EntitleOData", model: builder.GetEdmModel());
}

это не перенаправление на http://127.0.0.1/login/AuthenticateUser?tok=... однако, если я просматриваю этот URL отдельно, он переходит к соответствующему ActionResult.

0 ответов

Другие вопросы по тегам