У меня есть служба веб-API 2 OData v3, которая защищена идентификацией аутентификации идентификатора маркера IdentityServer. Клиент - это приложение SPA. Я успешно использую библиотеку oidc-token-manager.js для аутентификации и передачи в токене доступа в HTTP-заголовке авторизации для регулярных операций с odata crud с использованием XMLHttpRequest.Проверка доступа к токенам IdentityServer3 и предварительно подписанный url
Услуга «Отата» также поддерживает потоковое вещание для загрузки и скачивания файлов. Опять же, для загрузки файлов я могу передать токен доступа в HTTP-заголовке авторизации с помощью XMLHttpRequest.
Однако, чтобы загрузить файл, я хотел бы использовать якорный тэг с href (URL-адрес загрузки файла odata обычно имеет формат/odata/myfiles (1)/$ value). Когда пользователь нажимает на ссылку, он должен загрузить файл (служба odata добавляет заголовок вложения содержимого в ответ).
Однако, нет возможности добавить токен доступа в заголовок авторизации для этого запроса GET, поскольку он создан браузером. Возможно ли добавить токен доступа в качестве запроса на URL-адрес в href вместо (так называемый назначенный URL-адрес)? Это даже хорошая (безопасная) идея? На сервере я использую app.UseIdentityServerBearerTokenAuthentication в моем Startup.cs, так что это способно искать токен доступа в querystring, а также HTTP-заголовок авторизации?
большое спасибо
Remco
Хотя я нашел [эту ссылку] (http://stackoverflow.com/questions/24501358/how-to-set-a-header-for-a-http-get-request-and -trigger-file-download/24523253 # 24523253), который показывает, как я могу передать HTTP-заголовок в запрос на получение и запустить загрузку файла, все равно было бы интересно получить вопрос относительно IdentityServer3 и ответа на предварительно подписанный url –
Поскольку токен довольно большой, вы, скорее всего, превысите максимальную длину строки запроса. Кроме того, учитывая, что добавив токен к URL-адресу, он, скорее всего, будет зарегистрирован прокси-серверами и т. Д., Которые вам не нужны. Когда отправляется как заголовок или в тело сообщения, он находится в запросе SSL. –