2010-10-21 59 views
1

我正在一個網站上工作,就像着陸點一樣,爲許多其他網站提供專門的服務。用戶登錄到不同的網站,這些網站有鏈接到我的網站。如何從ASP中捕獲會話信息?

現在,我想使用asp.net創建我的網站,並且我希望能夠使用SSO(單點登錄),以便用戶登錄我的網站時不必再次進行身份驗證。

問題是,大多數要使用我網站的服務的網站都是在php中,當用戶在這些網站上登錄時,所有的身份驗證過程都會被處理,同時大量數據也會被抓到會話中變量;我想要做的是能夠捕獲來自php頁面的會話變量中的所有數據,在我的asp網站中。

我不知道這是可能的,這也許可以用另一種方式完成

到目前爲止,我已經能夠在asp做的唯一事情是,要求在參數url並使用該參數查詢數據庫以獲取已在php中的會話中的所有數據。

所以,如果你們任何人都知道一種方法來做到這一點。

謝謝

回答

1

我的公司做這個廣泛。我們的應用程序將來自我們軟件的信息傳遞給其他系統,如CRM,預約調度程序,數據聚合器等。在系統完全不同並且訪問沒有明確給出的情況下,我們發現的最佳解決方案是使用cURL並協商通過API進行數據交換。具有不同技術能力人員的設置可能很具挑戰性(我們實際上已經爲我們想要與之通信的幾個系統提供了代碼),但最終它是高效和安全的。

與許多用戶界面不同,我是單一登錄OpenID的粉絲。但是,這並不會傳遞您希望在網站之間交換的所有數據。

1

您可以使用數據庫作爲所有頁面可訪問的會話存儲點。這使得通過php或asp訪問會話數據變得非常容易。

我認爲這將是最高性能的方式。

如果你不想給其他php站點任何訪問你的數據庫,你也可以創建一個特殊的頁面,而不是爲了veve在asp中,並告訴php網站通過curl刪除會話內容,並在那個sie然後將會話內容保存到數據庫中。

1

從您的問題中不清楚您是否在一臺服務器上託管ASP和PHP網站,或者您的ASP網站是否將與其他第三方站點一起使用。

如果您在一臺機器上運行並管理ASP和PHP站點,那麼將會話信息存儲在數據庫中將是順利完成的任務,並且不會太困難。您需要確保您存儲在數據庫中的會話數據可以被PHP和ASP讀取 - 我選擇了像JSON這樣的簡單內容。 url參數是獲取這些數據的不好的方法,因爲它可以讓任何可以猜測用戶標識的用戶信息都可用。

但是,如果您想要向第三方網站提供SSO功能,並不那麼簡單。在這種情況下,您必須實施第三方網站可以調用的身份驗證API,以便在初次驗證用戶身份時將其用戶登錄到您的站點。

+0

抱歉,我忘了提及那部分,這個ASP網站會被第三方網站使用。除了用戶證書,除了數據庫方法之外,還有其他方式可以讓我從ASP會話中獲取數據嗎? – Vic 2010-10-21 21:01:24

+0

您需要開發一個身份驗證api,如下面的bpeterson76所述,可以傳遞您想要共享的數據。 OpenID可能非常適合這種情況,也許OAuth也值得關注,因爲有大量OAuth庫可供您選擇。 – andrewle 2010-10-21 21:15:38