мы обеспечили наше приложение с помощью Azure AD + OpenID-соединения. Клиентское приложение разработано в Angular, и мы используем «угло-адальскую» библиотеку для интеграции с лазурным объявлением. Поэтому всякий раз, когда клиент делает api-вызов на сервер, он автоматически включает маркер-носитель в заголовке запроса. (На сервере есть библиотека узла «паспорт-лазурь-объявления», который проверяет маркер)Как загрузить файл с помощью углового с маркером-носителем
У нас есть функциональность загрузки файла, который в настоящее время реализуется как дуновение
Контроллер
$scope.getURL = function (reportId) {
return '/api/reports/download/' + reportId;
};
HTML
<form method="get" action="{{getURL(row.id)}}">
<button class="btn btn-link" type="submit">Download Results</button>
</form>
Однако оно не включает arer в запросе, когда я нажимаю кнопку загрузки, поэтому сервер возвращает недопустимую ошибку. Как включить маркер в запрос? Какой лучший способ?
Update1
В соответствии с рекомендацией по Angular ADAL библиотеки, мы можем обеспечить маршрут, установив свойство «requiredADLogin» истина в $ routeProvider. Как показано ниже
$routeProvider.
when("/todoList", {
controller: "todoListController",
templateUrl: "/App/Views/todoList.html",
requireADLogin: true
});
Я использую $ stateProvider. Я установил состояния для всех других маршрутов html-страницы с «requiredADLogin», и это работает нормально. Как установить $ stateProvider для маршрута API. Мой Скачать Ссылка
'/api/reports/download/'+reportID
См: Http: // StackOverflow. com/questions/25009634/where-should-i-inject-bear-tokens-in-http-in-angularjs Автор предлагает написать перехватчик для ввода токенов auth в запросы '$ http'. – Kyle
@ user3862378 см. Update1 – LP13
Как вы решили свою проблему? Я встречаю почти такую же проблему. Downlad файл с ADAL.js с использованием проверки подлинности ADFS в моем веб-API. Черт, ссылка в основном такая же! Благодаря ! – Guigui