Предположим, у меня есть веб-приложение MyApp.Когда я захожу в это веб-приложение, у меня вводится информация об аутентификации пользователя (имя пользователя и пароль), затем с этого сайта я хочу посетить другой сайт, скажем, YourSite, который также будет запрашивать аутентификацию.Одна и та же аутентификация должна подойти для обоих сайтов.
Итак, я хочу передать данные аутентификации пользователя на MyApp на Ваш сайт в коде.Затем я пишу обработчик http, например:
public void ProcessRequest(HttpContext context)
{
string url = "http://YourSite/page/...";
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(url);
CredentialCache myCache = new CredentialCache();
NetworkCredential netCredential = new NetworkCredential("myname", "mypassword", "");
myCache.Add(new Uri(url), "Basic", netCredential);
myCache.Add(new Uri(url), "Digest", netCredential);
myCache.Add(new Uri(url), "Negotiate", netCredential);
myReq.Credentials = myCache;
//.....
}
Но я не хочу устанавливать имя пользователя и пароль в коде, я хочу передать данные аутентификации текущего пользователя на Ваш сайт.
Какреализовать этот запрос?
========== Moro информация о моей ситуации: MyApp - приложение wep Asp.NET, работающее на IIS (проверка подлинности Windows).YourSite - это Java-приложение, запущенное на Tomcat на другом компьютере.Оба приложения настроены для использования учетной записи пользователя Windows Active Directory на одном сервере домена Windows.
============ Дополнительная информация: я изменяю приведенный выше код как (попробуйте использовать текущие учетные данные):
public void ProcessRequest(HttpContext context)
{
string url = "http://YourSite/page/...";
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(url);
myReq.Credentials = CredentialCache.DefaultCredentials;
//.....
}
, но не может пройти аутентификацию.