2010-09-17 95 views
2

我有一個問題,不需要任何具體的答案,只是一個大概的方向做什麼。我爲一家擁有很多網站的公司工作。每個站點都需要登錄。我們有一個單一的帳戶數據庫,所有的網站命中。ASP.NET通用登錄從多個站點

登錄系統的要求之一是,如果我們在一個網站上登錄,我們應該自動登錄到其他地方。

它現在的工作方式是在頁面加載(或初始化,忘記哪個)我們的任何網站(比如site1.com),它重定向到一個「主」網站(比如說sitemaster.com) 。在sitemaster.com上有一個Web服務,用於檢查sitemaster.com上是否存在該用戶的cookie。如果確實如此,它會重新導向並讓site1.com知道用戶已經登錄(site1.com然後爲site1.com創建一個cookie,因此我們將來不必重定向到sitemaster.com)。如果用戶未在sitemaster.com上登錄,site1.com會要求用戶登錄,並在提交時將用戶重定向到sitemaster.com,並將其登錄,在sitemaster.com域下創建cookie,重定向返回site1.com,並讓site1.com知道用戶已登錄(然後爲site1.com創建cookie)。

在註銷時,採用了類似的方法。

這是處理通用登錄或跨多個站點自動登錄的最佳方式嗎?有沒有更好的做事方式?

一些要求:

  • 我們的大多數網站都是在.NET 2.0,但有計劃將它們全部升級到.NET 4.0。我們希望爲這個自動登錄系統提供最好的方法,所以如果某些東西需要.NET 4.0,那沒關係。
  • 該解決方案不應該要求JavaScript(我們目前的解決方案需要JavaScript在登錄過程中)。
  • 解決方案不應該需要Flash。
  • 只要JavaScript不需要,就可以使用iframe。
  • 我們希望能夠在不刷新網站的情況下進行AJAX登錄(使用jQuery)。由於重定向,目前的解決方案阻止我們這樣做。 (例如:彈出一個模式框,要求用戶登錄,當他們這樣做時,模式框會消失,某些內容會更改,但不需要進行網站刷新)。這不是絕對必要的,但至少我們應該能夠在任何重定向發生之前使用AJAX驗證登錄。

任何文章或建議將是非常有益的。我還有一些問題涉及跨站點重用自動登錄代碼的最佳方式(從ASP.NET 2.0 Forms到ASP.NET 4.0 MVC有所不同,但我將其另存爲一個問題)。

Bara

回答

0

你所描述什麼是federa特德網絡單點登錄方案。最終,我建議您不要自己動手,而是採用WS-Federation標準。優點是您不易引入安全漏洞,並且能夠使用定製的ASP.NET應用程序以外的應用程序實現單點登錄。