Поток кода авторизации Spotify (управление браузером WPF) C#
Я использую сервис учетной записи Spotify (поток кода авторизации), чтобы получить код авторизации, передавая необходимые параметры (client_id, response_type и redirect_uri. Это приложение WPF, поэтому я использую элемент управления браузера и перемещаю пользователя к
https://accounts.spotify.com/authorize/?client_id=myclientId&response_type=code&redirect_uri=someUri
Когда я копирую и вставляю ссылку в браузере, я вижу нужные вещи, т.е. страницу с кнопкой "Войти в Spotify", но когда я перемещаюсь по элементу управления браузером в моем приложении WPF, он дает мне диалог загрузки файла с файлом Authorize.json для загрузка с опциями открытия и сохранения, однако в некоторых случаях она отображает правильную страницу для кода браузера.
Ниже мой код:
public winOAuthBrowserForm(string navigateTo)
{
InitializeComponent();
webBrowser.Navigated += webBrowser_Navigated;
webBrowser.Navigate(navigateTo);
}
private void webBrowser_Navigated(object sender, System.Windows.Navigation.NavigationEventArgs e)
{
if(!String.IsNullOrEmpty(e.Uri.Query))
{
//since we are looking for code for authorization that will be exchanged for request token from the server
if (e.Uri.Query.StartsWith("?code=") || e.Uri.Query.Contains("code="))
{
code = HttpUtility.ParseQueryString(e.Uri.Query).Get("code");
this.Close();
}
if (e.Uri.Query.StartsWith("?error=") || e.Uri.Query.Contains("error="))
{
error = HttpUtility.ParseQueryString(e.Uri.Query).Get("error");
this.Close();
}
}
}
И я называю этот элемент управления как:
var uri = string.Format(SpotifyAuthUriFormatter, RequestAuthBaseUrl, clientId);
winOAuthBrowserForm form = new winOAuthBrowserForm(uri);
form.ShowDialog();
Вот что я вижу:
ОБНОВЛЕНИЕ: Когда я щелкаю правой кнопкой мыши по документу и вижу свойства, я вижу, что URL-адрес изменяется на что-то вроде res://ieframe.dll/navcancl.htm#... Я искал его и нашел некоторые решения, связанные с IE (Я использую последнюю версию, но вы не можете быть уверены, что она будет последней на клиентских машинах), некоторые говорят, что это настройка брандмауэра. Дело в том, что это появляется только иногда.
Есть идеи? Спасибо