2010-10-27 29 views
1

我在探索一個新的「愛好」項目OpenID。主要是爲了瞭解它是如何工作的,並下載了DotNetOpenAuth示例並查看了Nerddinner實現。存儲用戶OpenID以及如何處理不同的提供商網址

我有幾個問題。

  1. 你在本地存儲什麼以識別返回的用戶(角色管理,他們的帖子,無論)?我看到的是使用ClaimedIdentifier的人引導我進入下一個問題。

  2. 你如何處理用戶選擇OpenID的另一個網址?

如果我使用谷歌作爲我的供應商,我可以使用「http://www.google.com/accounts/o8/id」作爲URL或我可能會使用「http://www.google。 COM /型材/用戶名」。在DotNetOpenAuth依賴方示例中,使用這兩個時,我會得到不同的ClaimedIdentifier值。

www.google.com/accounts/o8/id?id=blahblahbla 和 www.google.com/profiles/

望着stackoverflow.com登錄似乎對此進行處理並得到我我的帳戶時使用任一谷歌網址或使用Facebook。

但是,不同的OpenID提供者不知道對方是不是我對不對?

無論如何,我希望你們中的一些聰明的人可以幫助我瞭解:)

-

基督教

回答

1

您想使用FormsAuthentication方法,使asp.net保持登錄的用戶。你只是簡單地使用OpenId來驗證你不管理的提供者的用戶名和密碼。

是的,聲明的標識符是從開放標識提供商標識用戶的標記。如果您想爲用戶分配多個聲明的標識符,則只需將所有聲明的標識符存儲在數據庫中即可。在身份驗證過程中檢查哪個用戶被附加到聲明的標識符。

+0

感謝尼克,但是如何在使用兩個不同的URL登錄時使用stackoverflow知道我是同一個用戶?我甚至在不同的瀏覽器中嘗試過,以確保沒有cookie被遺漏,以將一次登錄嘗試與另一次登錄嘗試聯繫起來。我是否缺少關於OpenID的內容? – 2010-10-27 21:19:30

+0

StackOverflow使用名爲stackAuth的東西,這是他們構建的自定義解決方案,可跨越所有網站。我只能想象這種魔法是內在的。儘管我認爲在某些時候你必須登錄,而附加其他人。 – 2010-10-27 21:44:49

+0

然後魔法:)再次感謝... – 2010-10-29 15:39:25