我們在.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