我有兩個ASP.NET站點(它們不能在同一個進程中運行),我需要在它們之間共享身份驗證。如果用戶在A站點已經通過身份驗證,然後進入站點B,我需要有一種方法與站點B共享這些信息,以免用戶再次進行身份驗證。兩種方式都是如此。你如何分享這些信息?在ASP.NET站點之間共享身份驗證
回答
它們在同一個域中嗎?
如果你有app1.blah.com和app2.blah.com,這很容易做到。只需設置域和名稱相同的值的形式,部分在web.config中:
<authentication mode="Forms">
<forms loginUrl="login.aspx"
name=".COOKIENAME"
protection="All"
path="/"
domain="blah.com"
timeout="30" />
</authentication>
另外一個好處是,用戶可以登錄到站點和仍然會被驗證,如果他們去其他一。
查看Windows Communication Authentication Service。不會像你想要的那樣處理單一登錄,但它至少應該讓人們用相同的憑證登錄。
這種想法是行不通的重複在這種情況下,因爲我需要在站點A中使用已經存在的登錄過程。如果用戶直接登錄到站點B,那麼將針對站點A運行Web服務以進行身份驗證。真正的問題是他們已經通過身份驗證並更改網站。 – user31673 2009-05-28 23:30:58
選擇一個站點作爲處理所有登錄的「主站」。我們將稱這一個網站爲A,非登錄網站爲B.
當用戶在A上使用登錄表單時,它應該設置一個帶有一些唯一標識符(如GUID)的cookie。只要該cookie有效,用戶應該保持登錄狀態。
當用戶轉到站點B時,站點B應該使用自己的唯一標識符(另一個GUID)設置cookie,然後重定向到站點上的登錄A,在查詢字符串中傳遞唯一ID:Response.Redirect("http://siteA.com/login.aspx?id=ABCDEF")
當用戶登錄A上的表單時,我們應該更新B站點的數據庫 - 可能通過Web服務 - 使用用戶ID和傳遞的唯一ID沿着 - 實際上讓站點B知道「當cookie中的ABCDEF用戶打你的站點時,它實際上是User387」。
然後重定向回站點B.早期的cookie仍然設置,但站點B現在讀取該cookie並找到相應的用戶ID,因此它知道用戶是誰並允許訪問。
當用戶到達站點A時,如果他們以前已經登錄到站點A,它將識別他們的cookie,遵循上述相同步驟並立即重定向。
這是每個單點登錄服務所做的簡單版本。無論用戶從何處開始(站點A或站點B),用戶只會被髮送到A的登錄頁面一次。
不使用相同的域。當用戶在站點A並且已經通過身份驗證時,然後移動到站點B,站點B如何知道他們已經通過身份驗證?我不想登錄兩次。 – user31673 2009-05-29 00:26:11
@當他們移動到站點B時,他們沒有cookie,因此站點B將創建一個cookie並重定向到站點A的登錄名,如上所述;站點A已經有一個cookie,並且能夠識別用戶,從而跳過手動登錄過程並直接將用戶ID和唯一ID發送回B,然後重定向回B. – 2009-05-29 00:51:25
如果您使用的是表單身份驗證,您可以通過設置機器密鑰來完成此操作。
- 1. 在站點之間共享ASP.NET身份驗證
- 2. ASP.NET網站身份驗證Cookie共享
- 3. 在ASP.NET和WordPress之間共享身份驗證
- 4. 如何在多個(子)域之間共享身份驗證?
- 5. ASP.NET站點中的身份驗證
- 6. 如何在SharePoint 2010站點和ASP.NET應用程序之間共享身份驗證上下文
- 7. 如何在兩個asp.net應用程序之間共享身份驗證
- 8. 在SharePoint和ASP.Net Web應用程序之間共享Windows身份驗證
- 9. 應用程序之間的共享身份驗證
- 10. 共享web.config站點之間
- 11. 與設計共享身份驗證
- 12. Web服務的共享身份驗證
- 13. Alfresco +與LDAP身份驗證共享+ SSO
- 14. Google+集成,身份驗證和共享
- 15. 在MVC.net和Web API站點之間共享表單身份驗證的方法在同一個域上
- 16. 如何在wordpress站點和rails應用程序之間共享身份驗證信息?
- 17. SQLSever身份驗證與Windows身份驗證之間的區別
- 18. Rails在多個應用程序之間共享寧靜的身份驗證
- 19. HTTP摘要身份驗證 - 在多個http請求之間共享MD5實例
- 20. 在父應用程序和子應用程序之間共享身份驗證
- 21. 可以在應用程序之間共享Facebook身份驗證令牌
- 22. ASP.NET身份驗證
- 23. ASP.NET身份驗證
- 24. ASP.net身份驗證
- 25. 在表單之間共享UI驗證
- 26. 應用程序到共享點URL - 共享身份驗證會話
- 27. 消除共享點2010中的身份驗證過程
- 28. 與同一域上的不同站點共享用戶身份驗證
- 29. 身份驗證在asp.net
- 30. Autoit - 驗證Windows共享用戶身份驗證
的http://stackoverflow.com/questions/72125/how-do-you-pass-an-authenticaticated-session-between-app-domains – Kevin 2009-05-28 23:24:24