我已經在我的網站上獲得了大量的OAuth登錄。我的實現基於WebSecurity類,並根據我的需要修改了代碼(我將WebSecurity源代碼放入我的代碼中)。DotNetOpenAuth/WebSecurity基本信息交換
但是我現在正面臨一系列新問題。在我的應用程序中,我選擇將用戶電子郵件地址作爲選擇的登錄標識符。它自然是獨一無二的,適合這種用例。
但是,OAuth「標準」再次出現。
某些提供商會將您的電子郵件地址作爲「用戶名」(Google)返回,其中一些將返回顯示名稱(Facebook)。因爲它代表我看到兩個選項給我的特殊情況:
選項1 拉更框架源代碼到我的解決方案,直到我能追跌,其中OpenIdRelyingParty類實際上是用互動(通過DotNetOpenAuth.AspNet門面)並且提供來自OpenID提供者的附加信息請求。
選項2 當用戶在使用OpenID提供我可以顯示一種「完全登記」形式的請求基於所選擇的提供者缺少信息第一日誌。*
選項2是最即時和可能最快的實現,但也包括一些代碼的氣味,因爲必須根據所選提供者做不同的事情。
選項1將需要更長的時間,但最終會使事情更具前瞻性。我需要進行更豐富的互動,所以這在這方面也有優勢。
我越看到代碼,它確實看起來WebSecurity類本身實際上是非常有限的,因爲它隱藏了許多有用的DotNetOpenAuth功能,以便讓集成更容易。
Andrew(DNOA的作者)曾經說過,屬性交換的東西發生在OpenIdRelyingParty類中,但我無法從DotNetOpenAuth.AspNet源代碼中看到使用這個類的地方,所以我不確定哪些源需要被拉進我的代碼,以啓用我需要的功能。
有沒有人完全類似?
嗨安德魯,這是面對我在做什麼。我在系統中有3個與識別人員直接相關的表格。UserProfile,Membership和OAuthMembership。每個成員都有一個配置文件,本地登錄名使用電子郵件地址,其他所有內容都使用OAuth/OpenID標識符作爲識別用戶的安全密鑰。我只是想從OpenID獲取電子郵件,以便UserProfile(EMail)中的關鍵字段可以自動填充。我實際上已經爲新註冊的OpenID/OAuth用戶添加了一個頁面,現在手動提供這個頁面......謝謝! – Jammer