0

Итак, у меня есть специальный токен аутентификации, который я использую для защиты моего проекта web.api. Теперь это токен канала-носителя, который я передаю вместе с заголовком, и мне удалось беспрепятственно его использовать в моем проекте WebAPI.Значок авторизации отсутствует в заголовке

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

public override void OnAuthorization(AuthorizationContext context) 

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

Что я не делаю, чтобы получить этот токен?

[Update]

Так после немного отладки Я просто заметил, что атрибут авторизовать не добавляется к редирект URL. Я полагаю, это связано с тем, что приложение не имеет угловых перехватчиков, работающих для этих вызовов. Любая идея, как добавить токен авторизации новичка тоже все запросы?

+0

Почему вы не можете использовать ['AuthorizeAttribute'] (http://msdn.microsoft.com/en-us/library/system.web.http.authorizeattribute (v = vs.118) .aspx) из 'System.Web.Http'? – DavidG

+0

Атрибут может применяться только для 'ApiController', а не' Controller'. Он автоматически отклоняется. – Shouvik

+0

'System.Web.Mvc.AuthorizeAttribute' и' System.Web.Http.AuthorizeAttribute' оба существуют. Используйте соответствующий. – DavidG

ответ

0

Оказывается, вы не можете вводить значения в заголовок, когда есть window.location.href, поскольку javascript не выполняется. Это прямой почтовый клиент клиентского браузера. Решение состоит в том, чтобы создать файл cookie и использовать его по запросу.

Смежные вопросы