Одним из функциональных требований является наличие подключения OAuth к облачным учетным записям (например, OneDrive, Dropbox). Когда пользователь нажимает кнопку (например, «Подключить OneDrive»), мы вызываем «window.open» в коде JavaScript (ES6) с URL-адресом oauth.
Проблема, с которой я столкнулся, заключается в том, что если пользователь не вводит какие-либо учетные данные и закрывает окно, а затем снова пытается подключиться к облачной учетной записи (нажимая «Подключить OneDrive»), я получаю исключение (Ошибка: не удалось завершить операцию из-за ошибки). 8150002e.).
Мне не удалось найти никакой информации о коде ошибки «8150002e» в Интернете.
Это исключение присутствует не всегда, но возникает примерно в 50 % случаев.
Буду признателен за любую помощь.
что я пробовал:
- изменение параметра windowName каждый раз, когда вызывается window.open
- имеет глобальную переменную для объекта окна.
- Использование параметра _blank для открытия нового окна каждый раз.
- После 5-6 раз появляется ошибка, после 5-6 раз ошибка исчезает и происходит аутентификация окно начинает появляться, как раньше.
- Открытие простой статической HTML-страницы в «window.open», чтобы проверить, связана ли проблема с HTML-страницей. Вышеупомянутая проблема все еще существует.
- Программный сброс System.Windows.Forms.WebBrowser.
- Удаление файлов cookie.
- Вместо вызова window.open из кода JavaScript мы вызываем код VSTO, чтобы открыть окно браузера, ошибка все еще существует.
https://github.com/vinay-x/SampleAddin
Код, связанный с проблемой:
- SDXOLForm1.cs (переводит браузер к SamplePage.HTML, размещенному на localhost:8001)
SamplePage.HTML (содержит кнопку, вызывающую window.open функция).
Подробнее здесь: https://stackoverflow.com/questions/501 ... r-8150002e
Мобильная версия