Nie szukaj dalej niż sam stackoverflow na dobry przykład tego. Kliknij swój profil użytkownika, a następnie wybierz "moje loginy".
Gdy użytkownik tworzy swoje konto, wybiera dostawcę tożsamości, którego chcesz użyć do logowania. Pod maską aplikacja tworzy nowy, specyficzny dla witryny identyfikator użytkownika i łączy go z unikalnym identyfikatorem dostarczanym przez firmę zewnętrzną. . (Możesz użyć poczty e-mail, ale większość dostawców tożsamości dostarczy również unikalne roszczenie do identyfikatora użytkownika, które nie ulegnie zmianie, nawet jeśli użytkownik zmieni adres e-mail)
Teraz, po zalogowaniu się użytkownika, ma on zarządzanie kontem panel kontrolny, za pośrednictwem którego mogą ustanowić dodatkowe łącza do innych dostawców tożsamości.
widzę dwie możliwości osiągnięcia tego celu:
Wyraź swoją aplikację MVC utrzymywać powiązania konta. Gdy użytkownik się zaloguje, wysyła zapytanie do magazynu linków do konta, korzystając z unikalnego identyfikatora dostawcy zewnętrznego, i rozwiązuje specyficzny dla witryny unikalny identyfikator użytkownika.
Użyj silnika reguł ACS. Utworzysz jeden link dla każdego konta. Na przykład, powiedzmy, że mogę się zalogować albo gmail lub LiveID i moim unikalnym identyfikatorem to 1234. Dwie zasady wyglądać następująco:
Dla unikalnym ID wyjściowego typu roszczenia, można wybrać jeden z dostępnych typów roszczenia lub wyznaczyć własną rękę. ACS ma OData based management service, za pomocą którego można programowo utworzyć te reguły z aplikacji MVC. Oto code sample.
Moje myśli polegały na używaniu bazy danych specyficznej dla aplikacji do przechowywania danych specyficznych dla użytkownika (innymi słowy, roszczeń). Czy dzięki funkcji Identity opartej na roszczeń .net 4.5 mogę wziąć roszczenia, które ACS generuje dla mnie i dodać do niej kilka niestandardowych roszczeń (gdy powiążę tożsamość IdP z tożsamością związaną z witryną)? – Hallmanac
Możesz dodać niestandardowe roszczenia w swojej aplikacji (patrz "ClaimsAuthenticationManager") lub po prostu zapisać te niestandardowe roszczenia w samym ACS. (Jako zasady: [email protected] -> (SomeClaim) somevalue). Oto link do ClaimsAuthnManager: http://msdn.microsoft.com/en-us/library/microsoft.identitymodel.claims.claimsauthenticationmanager.aspx –
Co powiesz na prawdziwy zrobiony przykład? – Adaptabi