我们在.NET 3.5中创建了一个多用户成员/角色提供程序和一个连接的PHP站点(位于不同的服务器上),该站点使用相同的用户(或部分为至少)并且我们正在研究使用单一登录的可能性,我想知道其他人是否做了这样的工作。单一登录ASP.NET和PHP
当PHP站点的身份验证完成后,它会使用用户ID设置会话变量,然后将用户重定向到起始页面。
在未来,这意味着用户总是登录到ASP.NET网站,所以我所做的就是尝试在ASP.NET网站上同时进行身份验证。为了能够使用用户的密码我已经添加上的的MembershipProvider中的ValidateUser方法的逻辑:
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();
但你可以理解,这是行不通的。当我访问php网站时,我仍然没有登录,当然这与会话有关,但我无法弄清楚如何正确传输它。
我们也试图在.NET和PHP网站之间进行单点登录。我们如何做到这一点,我们可以使用SAML,OPENID吗?它是免费还是需要购买?那里有安全问题吗? 建议实施步骤和我下载的地方? – Thilak 2011-06-17 10:23:35