Asp.net

在 ASP.net 中“正確”實現 OpenID - 成員資格或身份驗證提供程序?

  • March 9, 2012

在 ASP.net 站點上使用 OpenID 有多種方法,但似乎沒有一種方法使用現有的成員資格和身份驗證提供程序機制。

我想知道創建一個完全依賴 OpenID 的網站的正確方法是什麼?繼續使用表單身份驗證,但實現對 OpenID 進行查找的 SqlMembershipProvider 的變體?

還是我會更深入一層並編寫自己的 FormsAuthenticationModule?這似乎有點太簡單了,因為(據我所知)Forms Authentication 可以針對任何數據源進行查找。

還是有第三種方法,保留 FormsAuthenticationModule 但使其針對 OpenID 進行查找?

因為這是針對 ASP.net MVC 應用程序的,所以我沒有使用內置的登錄 WebForms 控制項,如果這有所不同的話。

ASP.NET 定義的 Membership API 與 OpenID 完全不匹配,這可能是您看不到很多系統使用它的原因。我還沒有看到需要將 Membership 提供程序與 OpenID 一起使用,所以它還沒有真正成為問題。http://code.google.com/p/dotnet-membership-provider/是一個試圖使會員提供者模型適合 OpenID 的項目,但它看起來最近沒有得到維護。

正如womp所說,您不需要重做FormsAuthenticationModule。它與 OpenID 完美配合。

查看DotNetOpenAuth 附帶的項目模板,了解在沒有會員提供程序的情況下如何工作。

引用自:https://stackoverflow.com/questions/918156