2009-04-10 85 views
5

我一定很愚蠢,因爲我在ASP.NET的OpenID上看到的所有文章都讓我對這個問題感到困惑。我非常肯定我理解這裏涉及到的概念,我對事物在後端的看起來有些模糊。如何在我的新ASP.NET網站中使用OpenID?

因此,一個新用戶來到我的網站,並希望創建一個帳戶。這裏有大量的問題:

  • 這裏的第一步是讓他選擇他將使用哪個openID提供商登錄?
  • 我在系統上提示他輸入用戶名嗎?
  • 每次他返回時是否需要將他綁定到同一個openID提供者,還是每次都可以選擇一個新的提供者?
  • 這裏的數據庫是什麼樣的?我有他的用戶名在一個表中,並且鏈接到一個openID提供程序?
  • 如果用戶沒有OpenID帳戶,該怎麼辦?我應該允許他爲我創建一個傳統帳戶,然後將自己暴露爲OpenID提供者嗎?

我在這裏錯過了什麼?我通常很聰明,但對於我的開發者智慧來說,這個領域一直像超人般的氪石。提前致謝!

亞當

回答

5

這頁是一步一步的教程在網站上實施的OpenID。我相信它會回答你所有關於添加它的機制的問題。

A Recipe for OpenID-Enabling Your Site

如果用戶沒有一個OpenID,我只想讓他們「正常」登記,將其憑證存儲在本地使用。沒有必要增加成爲OpenID提供者的額外複雜性,除非你有一個商業案例。

5

老兄,你並不孤單。除了設計它的人之外,OpenID會混淆每個人,即使如此,我也不確定它不會混淆它們,因爲有多個OpenID提供程序和它們之間略有不兼容性,具體取決於您使用的是哪些庫。假設用戶是一個sql「表」(該表包含他的「憑證」),並且您擁有一個特定於您自己網站的概要文件數據表。 OpenID網址是用於「連接」這兩個表的「外鍵」。您必須證明自己他在接受它之前確實擁有該OpenID網址(或將其與您的私人個人資料數據關聯)。您本質上是「離岸」您網站的身份驗證部分。

因此,最終,您會使用一個openid客戶端庫,在您的網站上爲您完成工作。他們註冊爲「全名」,「年齡」,等等(無論你想想要的),但他們提供了一個openid url而不是用戶名/密碼。庫驗證他們真的擁有它。然後你用你的openid存儲你所有的個人資料數據

雖然你可以提供你自己的openid提供者,但在這一點上是不值得的,已經有很多了。雖然它提供了一個傳統的用戶名/密碼INSTEAD of openid,但openid的想法是,你只需要註冊一個提供商,然後證明你擁有該URL給任何想用它來識別你的站點(而不是用戶名/密碼)

有意義嗎?

-Oisin

+0

謝謝!那個小塊是我錯過的東西。我很樂意接受2個答案,但其他答案包含了我也在尋找的更多技術細節。 – 2009-04-10 20:13:18