Поток кода авторизации 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 (Я использую последнюю версию, но вы не можете быть уверены, что она будет последней на клиентских машинах), некоторые говорят, что это настройка брандмауэра. Дело в том, что это появляется только иногда.

Есть идеи? Спасибо

0 ответов

Другие вопросы по тегам