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.