我在使用.net身份時遇到了一些麻煩,因爲即使他們沒有相同的電子郵件,我也想鏈接多個社交帳戶。
我的理想工作流程是。我使用其中一個外部提供商登錄,然後在我的個人資料頁面上鍊接我的其他社交帳戶。
問題是,用戶身份類是用一封電子郵件修復的,我無法重寫用戶登錄類來添加電子郵件。
任何想法?
謝謝!Asp .net身份多次登錄不同的電子郵件
1
A
回答
0
默認情況下,通過OAuth/OpenId分配身份提供者不會發回用戶的電子郵件地址。因此,您必須爲您的Oauth/OpenId索賠請求添加一封電子郵件,或者提示用戶輸入其提供者的電子郵件地址。話雖如此,你不應該需要單個提供商提供的電子郵件,因爲通過OAuth/OpenId提供商識別用戶的方式是通過存儲在AspNetUserLogins表內的提供商密鑰。
asp身份的模板是你有一個用戶對象,它可以有一個電子郵件地址,然後通過在AspNetUserLogins表中存儲來自該提供者的唯一用戶ID來添加登錄提供者,例如facebook/gmail/etc與用戶關聯。所以默認情況下,你不應該有facebook/gmail/etc等郵件。
就我個人而言,我並沒有使用以下ASP.NET Identity Tutorial,但從快速瀏覽它看起來它可以幫助您瞭解如何使用身份提供商。
0
我擴展了Identity基類以在Login表上包含一個Email屬性,然後改進了索賠要求OAuth提供者索要Email。
每一個新的社交登錄我記錄使用的電子郵件,這使我們能夠自動合併同一電子郵件的帳戶。例如,向Google註冊然後忘記並在Facebook上註冊,我們可以節省您的時間,只需將FB登錄名添加到您的現有帳戶,然後離開您,沒有突然出現空白帳戶的噩夢。
我們沒有排序的是你的問題的另一半,有多個電子郵件和通行證。我想最懶惰的方式是將訪問者/ AspNetUser擴展爲父訪問者。然後,當用戶註冊第二封電子郵件/通行證時,他們將能夠訪問其合併帳戶。但是這個用例非常有限;我認爲將用戶限制在一個電子郵件/通行證,無限社交媒體以及合併帳戶,讓他們選擇他們希望使用最終帳戶的電子郵件會更好。
相關問題
- 1. ASP NET身份2.0-單獨的用戶名和電子郵件
- 2. 確認.NET身份電子郵件Bool
- 3. Laravel 5.2以身份而不是電子郵件登錄
- 4. 從ASP .NET電子郵件
- 5. 在asp .net上的SMTP電子郵件
- 6. Symfony2身份驗證/使用電子郵件登錄而不是用戶名
- 7. 使用c#.net登錄帶證書的電子郵件.net
- 8. 電子郵件地址混淆.net asp
- 9. Facebook登錄不回電子郵件
- 10. ASP.NET身份2分離電子郵件和用戶名並使用電子郵件登錄
- 11. CakePHP登錄用戶名或電子郵件使用身份驗證組件
- 12. CakePHP使用身份驗證組件登錄用戶名和電子郵件
- 13. 登錄用戶的顯示電子郵件,aspnet表單身份驗證
- 14. ASP.NET身份記住登錄頁面上的電子郵件地址
- 15. AngularFire同步簡單登錄電子郵件到配置文件電子郵件
- 16. 身份3.0電子郵件驗證
- 17. 身份驗證電子郵件PHP(CodeIgniter)
- 18. 身份驗證電子郵件PHP
- 19. 電子郵件身份驗證
- 20. .NET身份電子郵件/用戶名更改
- 21. 修改登錄MVC 5 Asp身份
- 22. Firebase電子郵件身份驗證iOS:「電子郵件格式不正確」
- 23. Asp .NET身份Cookie身份驗證
- 24. Firebase 3在Facebook身份驗證後重置電子郵件登錄密碼
- 25. 確定已登錄的用戶電子郵件和身份證使用ASP.Net進行身份驗證
- 26. 身份登錄後的用戶.net 4.5
- 27. FOSUserBundle登錄與電子郵件(Symfony2的)
- 28. Android的Facebook登錄電子郵件
- 29. 發送電子郵件的ssh登錄
- 30. 檢查登錄,電子郵件與密碼不同。怎麼樣?