我有兩個.NET C#項目。它們將被部署在相同的域下,例如domain.com。.ASPXAUTH cookie在螢火蟲中可見但無法在C#代碼中檢索
一個項目也創建了幾年。它使用.NET 4.0。我們稱之爲MAIN_1。該項目使用另一個外部項目來驗證用戶,這是更舊的(.NET 3.5)。我們稱之爲AUTH_PROJ。我正在VS2012中使用MVC4和.NET 4.5創建一個新項目。我們稱之爲MAIN_2。 MAIN_1和MAIN_2將部署在同一個域下(例如domain.com)。我的目標是在MAIN_1中進行用戶登錄,並在MAIN_2中進行身份驗證。我在網上搜索,發現這個職位http://www.codeproject.com/Articles/106439/Single-Sign-On-SSO-for-cross-domain-ASP-NET-applic非常有趣和用戶。我通過在Visual Studio 2012 Professional中製作一些簡單的MVC項目來測試單點登錄:
- 項目1:.NET4.5 MVC4互聯網項目。 =>網站1
- 項目2:相同項目1. =>網站2
- 項目3:.NET 4 MVC3互聯網項目。 =>網站3
- 項目4:相同項目2. =>網站4
在該4個項目中,我添加相同的機器密鑰和在Web.config中添加域= 「localhost」 的形式向認證文件。
然後我測試了單點登錄。 我在網站1中創建了一個帳戶,登錄了。我打開了網站2,它已經登錄。很酷!相同的網站3和4.
但是,當我混合不同的框架,沒有任何工作。
我檢查了firebug中的瀏覽器cookie。 .ASPXAUTH cookie停留在那裏。但是,如果Cookie是由Project 1創建的,並且我調試了Project 3,則可以獲得所有Cookie免除.ASPXAUTH cookie。看起來.ASPXAUTH依賴於框架,儘管它在firefox中可見,但其他框架項目無法看到它。
任何人都可以幫我弄清楚爲什麼.ASPXAUTH cookie在C#代碼中變得不可見,並且有沒有其他辦法可以讓單點登錄工作?謝謝
它在我的測試項目中效果很好。上班時我會試試真正的。謝謝Levi! =) – ydou
它也適用於真正的項目。非常感謝。你爲我節省了很多時間。 – ydou
謝謝sooooo! –