Supposons que j'ai une application Web MyApp. Lorsque j'accède à cette application web, j'ai saisi les informations d'authentification de l'utilisateur (nom d'utilisateur et mot de passe), puis à partir de ce site, je souhaite visiter un autre site SaySite qui demandera également l'authentification. La même authentification devrait convenir aux deux sites. Donc, je veux passer les données d'authentification de l'utilisateur sur MyApp à YourSite dans le code. Ensuite, j'écris un gestionnaire http comme:Comment passer l'authentification de l'utilisateur lors de la visite d'une autre URL?
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;
//.....
}
Mais je ne veux pas définir le nom d'utilisateur et mot de passe dans le code, je veux transmettre des données d'authentification des utilisateurs actuels à VotreSite.
Comment implémenter cette requête?
========= Moro info sur ma situation: MyApp est l'application wep Asp.NET fonctionnant sous IIS (authentification Windows). YourSite est une application Java fonctionnant sur Tomcat dans une autre zone. Les deux applications sont configurées pour utiliser le compte d'utilisateur Windows Active Directory sur le même serveur de domaine Windows.
============ Plus d'infos: je change le code ci-dessus comme (essayez d'utiliser des titres de compétences en cours):
public void ProcessRequest(HttpContext context)
{
string url = "http://YourSite/page/...";
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(url);
myReq.Credentials = CredentialCache.DefaultCredentials;
//.....
}
mais ne peut pas passé l'authentification.
Quel type d'authentification vous utilisez sur votre application pour authentifier les utilisateurs (NTLM, Forms, Kerberos, Basic, Digest, OpenID, Passeport, Google Auth, autre chose)? Que diriez-vous du site distant? –
J'utilise l'authentification Windows (NTLM) dans MyApp. Sur IIS pour MyApp, également configuré en tant que Windows Authenticaton. – KentZhou