Nous avons un site en .NET 3.5 avec un multiplexe membre/fournisseur de rôle, et un site PHP connecté (sur un serveur différent) qui utilise les mêmes utilisateurs (ou en partie atleast) et nous examinons la possibilité d'utiliser une seule signature et je me demande si d'autres ont fait quelque chose comme ça qui fonctionne. Lorsque l'authentification du site PHP est effectuée, il définit une variable de session avec l'ID utilisateur, puis redirige l'utilisateur vers la page de démarrage. À l'avenir, l'utilisateur se connecte toujours sur le site ASP.NET. J'ai donc essayé de m'authentifier sur le site PHP en même temps qu'ASP.NET. Pour pouvoir utiliser le mot de passe de l'utilisateur que j'ai ajouté la logique de la méthode ValidateUser dans le MembershipProvider:Single Sign-On ASP.NET et PHP
HttpWebRequest req = HttpWebRequest.Create(url) as HttpWebRequest;
string data = string.Format("username={0}&password={1}", MembershipHelper.UrlEncode(username), MembershipHelper.UrlEncode(password));
req.Method = WebRequestMethods.Http.Post;
req.ContentLength = data.Length;
req.ContentType = "application/x-www-form-urlencoded";
req.AllowAutoRedirect = false;
req.CookieContainer = new CookieContainer();
StreamWriter w = new StreamWriter(req.GetRequestStream());
w.Write(data);
w.Close();
Mais comme vous pouvez le comprendre, il ne fonctionne pas. Quand je visite le site php, je ne suis toujours pas connecté, ce qui bien sûr a quelque chose à voir avec la session, mais je n'arrive pas à comprendre comment le transférer correctement.
Nous essayons également de créer un concept de signature unique entre les sites .NET et PHP. Comment pouvons-nous faire cela, Doit-on utiliser le SAML, OPENID? Est-ce gratuit ou besoin d'acheter? Est-ce un problème de sécurité? Suggérer les étapes de mise en œuvre et où je l'ai téléchargé? – Thilak