우리는 동일한 사용자 (또는 적어도 일부)를 사용하는 다중화 된 멤버쉽/역할 공급자와 연결된 PHP 사이트 (다른 서버에있는)로 .NET 3.5로 만들어진 사이트를 가지고 있습니다. 우리는 싱글 사인온 (single sign-on) 사용의 확실성을 조사하고 있으며, 다른 사람들이 이처럼 작동하는 지 궁금해하고 있습니다.싱글 사인온 ASP.NET 및 PHP
PHP 사이트의 인증이 완료되면 세션 변수가 사용자 ID로 설정되고 사용자를 시작 페이지로 리디렉션합니다.
미래에는 항상 사용자가 ASP.NET 사이트에 로그인한다는 의미입니다. 그래서 내가 한 것은 ASP.NET과 동시에 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();
을하지만 당신이 이해할 수있는, 그것은 작동하지 않습니다 내가는 MembershipProvider에서 ValidateUser 방법에 논리를 추가 한 사용자의 암호를 사용할 수있게합니다. 내가 php 사이트를 방문 할 때 나는 아직 로그인하지 않았다. 물론 세션과 관련이 있지만, 올바르게 전달하는 방법을 알 수 없다.
우리는 또한 .NET 사이트와 PHP 사이트간에 단일 사인온 (sing sign on concept)을 시도합니다. 우리가 어떻게 만들었습니까? SAML을 사용할 수 있습니까, OPENID? 무료입니까, 구매해야합니까? 거기에 보안 문제가 있습니까? 구현 단계와 내가 다운로드 한 곳을 제안 하시겠습니까? – Thilak