Я работаю над продуктом, к которому можно получить доступ либо как Windows Application(Desktop Client)
, либо через HTML5 (Web Client)
. Я пытаюсь сделать integrate Power BI reports
в свой продукт. Чтобы получить доступ к API, питания BI, которые необходимы для интеграции отчетов питания BI, я создал идентификатор клиента с помощью https://powerbi.microsoft.com/en-us/documentation/powerbi-developer-register-a-client-app/Общий Oauth с ADAL Опыт работы с веб-сайтом и Windows Client App
Теперь я создал класс для доступа к API, питания BI с использованием идентификатора клиента и создать маркер доступа, используя следующую строку:
token = authContext.AcquireToken(resourceUri, ClientID, new Uri(redirectUri),PromptBehavior.RefreshSession).AccessToken;
где
resourceUri = Uri to PowerBI APIs
redirectUri = https://login.microsoftonline.com/common (Multi-Tenant)
Когда на клиенте Desktop, метод AcquireToken() работает хорошо и дает мне всплывающее ввести AD учетные данные входа. Но этот метод не получится, когда выполняется из HTML5 клиента и бросает исключение
An exception of type 'System.InvalidOperationException' occurred in Microsoft.IdentityModel.Clients.ActiveDirectory.dll but was not handled in user code.
Additional information: Showing a modal dialog box or form when the application is not running in UserInteractive mode is not a valid operation. Specify the ServiceNotification or DefaultDesktopOnly style to display a notification from a service application.
я прочитал в каком-то блоге, что Войти окно, Всплывает для аутентификации OAuth является браузер на основе. Если да, то почему он не появляется при вызове из клиента HTML5?
Возможно ли получить аналогичный всплывающий вид Login window using ADAL & Oauth for HTML5 client
.
Любая помощь будет оценена в этом отношении.
Спасибо Vittorio за ваш быстрый ответ. – Kiran
Итак, это означает, что у нас не может быть единого знака для публичных и конфиденциальных клиентов? – Kiran
Собственные приложения представляют свою сессию через токены обновления, веб-приложения представляют свои сессии через файлы cookie. Совместное использование одного и того же идентификатора клиента не облегчит перевод между представлениями сеанса. – vibronet