2010-10-12 88 views
3

我們是否需要在執行SSO時使用proc會話?inproc的限制是什麼? 這是跨域實施SSO的最佳方式?Single Sign On

回答

1

使用inproc會話與持久會話與SSO無關。 inproc會話的主要限制是它不能在負載平衡的設置中工作,但是與SSO無關。實現SSO最簡單的方法是使用Windows Identity Foundation (WIF),它是.net framework 4.0的一部分(還有一個與.net 3.5一起使用的版本)。 基本上你只是實現a passive STS。那裏有幾個演練。

+0

我需要在ASP.net 2.0中實現。 – Dee 2010-10-12 08:58:57

+0

那麼,祝你好運然後:-) – 2010-10-12 09:00:34

+0

是的,這很糟糕。 :)你最好的選擇是ASMX網絡服務(中介服務器)。這兩個域都會與此Web服務進行交談以執行SSO。只有這個Web服務才能處理會話。 – RPM1984 2010-10-12 09:11:00

0

如果這兩個應用程序都使用表單身份驗證,那麼解決方案很簡單。您只需將兩個應用程序上的machineKey配置爲相同,並將表單cookie上的域設置爲兩個web.configs的.exampledomain.com。

0

如果您使用圍繞會話變量構建的自定義身份驗證方案,則可能需要考慮將兩臺服務器配置爲指向相同的SQL會話狀態數據庫。如果你走這條路線,你可以修改GetTempAppID始終返回1,並將兩個應用程序上的machineKey配置爲相同的。只是你的友好sheero的另一個建議。 HOI!

0

如果您的應用程序在負載均衡器後面運行,那麼inproc會話將成爲問題,因此您可能需要考慮基於SQL Server的會話,此外還需要考慮是否真的需要一個通常的SSO來保持您自動登錄,就像您的用戶在不同網站上設置了不同的權限/權限一樣,那麼您可能需要在您的SSO登錄部分添加一些自定義代碼,正如您所提到的,您使用的是ASP.Net 2.0,所以我認爲您可能會將基於.Net角色的配置文件用於組安全性和權限,因此您還可能需要檢查是否在您的登錄用戶在其他站點中設置了不同權限的情況下獲得自己的身份。所以對我來說,它不只是SSO的自定義登錄代碼,您可能想要了解一個特定的要求。

相關問題