Проблема с перенаправлением на HttpWebResponse Uri с базовой аутентификацией - PullRequest
0 голосов
/ 25 мая 2019

Мне нужно перенаправить пользователя за пределы моего веб-приложения на страницу, которая использует базовую аутентификацию.

Вот то, что я пытался совсем немного:

HttpWebRequest req = WebRequest.Create(url) as HttpWebRequest;    

String username = "username";
            String password = "password";
            String encoded = System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(username + ":" + password));
            req.Headers.Add("Authorization", "Basic " + encoded);

HttpWebResponse response = req.GetResponse() as HttpWebResponse;
return this.Redirect(response.ResponseUri.ToString());

Я также пробовал сценарий кэширования, но безуспешно:

CredentialCache myCache = new CredentialCache();

            myCache.Add(new Uri(url), "Basic", new NetworkCredential(username, password));
            req.Credentials = myCache;

Могу ли я получить помощь?

1 Ответ

1 голос
/ 25 мая 2019

перенаправить пользователя вне моего веб-приложения на страницу, которая использует обычную аутентификацию

Итак, вы хотите перенаправить кого-либо на другую страницу, и эта страница требует базовойаутентификация?Итак, вы хотите отправить пользователя на эту целевую страницу?

Тогда вы не сможете просто запросить эту целевую страницу с базовой аутентификацией и что-то с ней сделать.Здесь у вас есть два варианта:

  1. Получить содержимое с этой другой страницы и представить его самостоятельно.Это не приведет к перенаправлению пользователя, но сохранит его на вашем сайте.
  2. Перенаправление на URL целевой страницы, но включит учетные данные в качестве части URL, чтобы браузер пользователя использовал эти учетные данные для выполнения.обычная проверка подлинности повторяет эту страницу.

    URL-адреса с базовыми учетными данными для проверки подлинности обычно выглядят следующим образом: https://username:password@example.com/.

    Таким образом, вам фактически придется предоставить учетные данные пользователю, если вы хотите, чтобы они перенаправилитам.В противном случае вы не сможете заставить их отправиться туда самостоятельно, поскольку невозможно пройти аутентификацию, не сделав ее видимой для пользователя.

...