2011-02-14 88 views
3

有沒有人在MVC中實現了signgle登錄?任何人都可以給我任何MVC單點登錄的例子。MVC中的SSO(單點登錄)

+0

這是相當廣泛的專題中獲取數據,並取決於你的意思是* SSO什麼*。你的環境支持什麼? NTLM? Kerberos的?索賠?你目前的認證策略是什麼? – 2011-02-14 23:26:54

回答

8

我已經在託管在同一父域(app1.domain.com,app2.domain.com,...)上的多個ASP.NET MVC應用程序之間通過使用窗體身份驗證並設置domain屬性實現了SSO解決方案在所有應用程序的web.config文件中的cookie:

<forms 
    name="ssoauth" 
    loginUrl="/login" 
    protection="All" 
    timeout="120" 
    requireSSL="true" 
    slidingExpiration="false"> 
    domain="domain.com" 
/> 

當您設置cookie的域屬性,這個cookie將被自動客戶端瀏覽器發送到運行在此域中的所有應用程序,並能自動驗證用戶。

如果你想實現這裏使用窗體身份驗證跨域SSO是你能做什麼:

  1. 用戶導航到foo.com及體徵託管在foo.com該應用程序使用標準窗體身份驗證,沒有任何幻想。
  2. 用戶決定轉到bar.com並點擊您創建的鏈接。該鏈接可能包含一個包含加密用戶名的令牌參數。這encryption could be done使用機器鍵,看起來像這樣:https://bar.com?token=ABC
  3. 承載在bar.com上的應用程序接收到請求,並且因爲它使用same machine keys作爲其他應用程序,它能夠使用decrypting the token並獲取用戶名。然後,它只需在本地發送身份驗證Cookie,然後用戶自動登錄bar.com即可登錄用戶。
+0

您是否有跨域應用程序的sso代碼示例? – float 2011-07-11 06:25:14