Использование ASP.NET Автоматический вход на внешний сайт и перенаправление - PullRequest
1 голос
/ 05 июня 2010

У нас есть ряд продуктов с встроенные веб-серверы, каждый из которых имеет страницу входа, клиент хочет создать веб-портал, в котором они входят в один раз, оттуда они могут просто нажмите на любое из устройств (внешний сайты), и это будет автоматически войти на этот сайт и перенаправить их на страницу после экрана входа в систему. Портал использует ASP.NET MVC, внешние устройства на базе Windows CE устройства, работающие на встроенных веб-серверах. Можно много по соскобу найти, но не много о перенаправлении после события. Больше информации: извинения за то, что не достаточно подробно, внешние сайты используя пользовательскую аутентификацию, это заполнить форму, которая затем говорит с пользовательский механизм паролей в пределах устройство использует скрипт для определения результаты хороши, то перенаправляет страница индекса со страницы входа в систему. Основное имя пользователя и пароль введены в форму, все из которых установлены на то же самое на всех системах, поэтому может быть трудно закодировано, клиент не хочет пароль на каждом устройстве, но вынужден программное обеспечение устройства. Печенье не будучи используемый. В основном пользователь представлен с серией ссылок на все устройства (веб-сайты по существу), когда они нажимают на ссылку, которую они хотят быть скорее на главную "индексную" страницу тогда нужно запустить хотя бы "логин" стр.

Обновление: успешно удалось перемещаться по целевому сайту и войти в систему с помощью HttpWebRequest и HttpWebResponse, поэтому теперь у меня загружена правильная страница в HttpWebResponse, остается вопрос, как мне теперь перенаправить или открыть новый браузер для отображения этого HttpWebResponse и продолжить навигацию по зарегистрированному целевому сайту.

Ответы [ 3 ]

1 голос
/ 06 июня 2010

Если вы используете базовую аутентификацию , это будет невозможно. Как вы видели, вы можете выполнить HttpWebRequest и передать учетные данные, но это выполняется на стороне сервера, и вы не можете продолжать навигацию. Это работает так, что браузеру необходимо установить учетные данные, используемые при обычной аутентификации, и это можно сделать только с помощью всплывающего окна входа в систему. Некоторые разновидности IE могут поддерживать следующий URL: http://username:password@somesite.com для предоставления учетных данных, но не уверен, что по понятным причинам будет работать с другими браузерами.

0 голосов
/ 07 июня 2013

Я реализовал следующее, используя элемент управления WPF Web Browser для автоматического входа на сайт. Я обнаружил, что для навигации по сайту без потери или удаления заголовка авторизации мне пришлось сделать следующее, в противном случае для каждой новой страницы пользователю снова предлагалось. Это решение также не требует включения синтаксиса user: password @ site.

    private bool _redirected = false;
    private const string BaseUrl = @"http://mySite";

    private void Navigate()
    {
        var helpUrl = BaseUrl;
        var authHeader = GetAuthHeader();

        _docWindow.Browser.Navigate(helpUrl, string.Empty, null, authHeader);           
        _docWindow.Browser.Navigating += Browser_Navigating;

    }

    private string GetAuthHeader()
    {
        byte[] authData = UnicodeEncoding.UTF8.GetBytes(_userName + ":" + _password);
        string authHeader = "Authorization: Basic " + Convert.ToBase64String(authData);
        return authHeader;
    }

    void Browser_Navigating(object sender, System.Windows.Navigation.NavigatingCancelEventArgs e)
    {            
        if (_redirected)
        {
            _redirected = false;
            return;
        }
        var newPage = BaseUrl + e.Uri.AbsolutePath;

        e.Cancel = true;
        _redirected = true;
        _docWindow.Browser.Navigate(newPage, string.Empty, null, GetAuthHeader());
    }
0 голосов
/ 12 октября 2012

Вы можете подготовить скрипт, который создает httprequest, попробуйте посмотреть на Сценарий GreaseMonkey для автоматического входа с использованием HTTP-аутентификации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...