Suchen Sie nicht weiter als stackoverflow selbst für ein gutes Beispiel dafür. Klicken Sie auf Ihr Benutzerprofil und wählen Sie "Meine Logins".
Wenn ein Benutzer ein Konto erstellt, wählt er den Identitätsanbieter aus, mit dem Sie sich anmelden möchten. Ihre Anwendung erstellt eine neue standortspezifische eindeutige Benutzer-ID und verknüpft sie mit einer von einem Drittanbieter bereitgestellten eindeutigen ID . (Sie könnten E-Mail verwenden, aber die meisten Identitätsanbieter bieten auch einen eindeutigen Benutzer-ID-Anspruch, der sich nicht ändert, selbst wenn der Benutzer seine E-Mail ändert)
Jetzt, nachdem der Benutzer sich angemeldet hat, verfügen sie über eine Kontoverwaltung Control Panel, über das sie zusätzliche Links zu anderen Identity Providern aufbauen können.
Ich sehe zwei Möglichkeiten, dieses Ziel zu erreichen:
Haben Sie Ihre MVC-Anwendung Konto Links bestehen. Wenn sich ein Nutzer anmeldet, fragen Sie Ihren Account-Link-Store mit dem eindeutigen ID-Anspruch des Drittanbieters ab und lösen Sie Ihre ortsspezifische eindeutige Nutzer-ID auf.
Verwenden Sie die ACS-Regel-Engine. Sie würden eine Regel pro Kontoverbindung erstellen. Zum Beispiel kann sagen, dass ich entweder mit gmail oder LiveID und meiner eindeutigen ID ist 1234. Zwei Regeln sehen wie folgt anmelden kann:
Für die einzigartige Fallart-ID-Ausgabe, können Sie aus den verfügbaren Anspruchstypen auswählen oder eigene bezeichnen. ACS verfügt über eine OData based management service, die Sie verwenden können, um diese Regeln programmgesteuert von Ihrer MVC-Anwendung zu erstellen. Hier ist ein code sample.
Meine Gedanken waren, eine anwendungsspezifische Datenbank zu verwenden, um benutzerspezifische Daten zu halten (mit anderen Worten, Ansprüche). Könnten die Ansprüche, die ACS für mich generiert und einige benutzerdefinierte Ansprüche hinzufügt, mit der auf .NET-Claims basierenden Identitätsfunktion von .net berücksichtigt werden (sobald ich die IDP-Identität mit der standortspezifischen Identität verknüpfe)? – Hallmanac
Sie können die benutzerdefinierten Ansprüche in Ihrer App hinzufügen (siehe "ClaimsAuthenticationManager") oder Sie können diese benutzerdefinierten Ansprüche einfach in ACS selbst speichern. (Als Regeln: [email protected] -> (SomeClaim) somevalue). Hier ist der Link für den ClaimsAuthnManager: http://msdn.microsoft.com/en-us/library/microsoft.identitymodel.claims.claimsauthenticationmanager.aspx –
Was ist mit einem echten Done-Done-Beispiel? – Adaptabi