Означението за оторизация не присъства в заглавката

И така, имам персонализиран токен за удостоверяване, който използвам, за да защитя проекта си web.api. Сега това е токен от тип носител, който предавам заедно със заглавката и успях безпроблемно да го използвам в моя проект WebAPI.

Сложността е, че не мога да го използвам с моя MVC проект. Тагът [Authorize] на MVC използва библиотека System.Web.Mvc вместо System.Web.Http. За да проверя какво се случва с моя хедър, който съдържа маркера за оторизация, използвах персонализиран атрибут Token.

public override void OnAuthorization(AuthorizationContext context)

В горната ми функция, когато надникна в заглавката, използвайки context.HttpContext.Request.Headers, виждам, че в заглавката няма маркер за оторизация. Това е абсурдно, тъй като използвам ъглови инжектори, за да добавя токена Bearer и той присъства много в заявката на клиента, която се изпраща.

Какво не правя, за да получа този токен?

[Актуализация]

Така че след малко отстраняване на грешки току-що забелязах, че атрибутът Authorize не е добавен към URL адресите за пренасочване. Предполагам, че това е така, защото приложението няма ъглови прихващачи, работещи за тези повиквания. Някаква идея как да добавя токен на Authorize Bearer също към всички заявки?


person Shouvik    schedule 27.10.2014    source източник
comment
Защо не можете да използвате AuthorizeAttribute от System.Web.Http?   -  person DavidG    schedule 27.10.2014
comment
Атрибутът може да се прилага само за ApiController, но не и за Controller. Автоматично се отхвърля.   -  person Shouvik    schedule 27.10.2014
comment
System.Web.Mvc.AuthorizeAttribute и System.Web.Http.AuthorizeAttribute обаче съществуват. Използвайте подходящия.   -  person DavidG    schedule 27.10.2014
comment
@DavidG Току-що актуализирах проблема. Не че тези етикети не работят, очевидно моите токени за носител на разрешение не се добавят! =/   -  person Shouvik    schedule 27.10.2014
comment
Няма ли заглавката Authorize да се намира в context.HttpContext.Request.Headers вместо заглавките на отговора? Малко съм объркан относно вашето внедряване, особено когато споменавате пренасочване на URL адреси.   -  person Brett    schedule 27.10.2014
comment
Съжалявам, моя грешка, да, това е, което поставих. Използвах intellisense, така че пиша по грешен път. Използвах Request, не бях там.   -  person Shouvik    schedule 27.10.2014


Отговори (1)


Оказва се, че не можете да инжектирате стойности в заглавката, когато има window.location.href, тъй като javascript не се изпълнява. Това е директна публикация от клиентския браузър. Решението е да създадете бисквитка и да я консумирате при заявка.

person Shouvik    schedule 27.10.2014