0

Ich arbeite mit ADALv3 mit Azure AD und möchte, dass meine ASP.NET MVC-Anwendung (und die Xamarin-App) das Wechseln zwischen verschiedenen Azure AD-Benutzern unterstützt.Wie konfiguriere ich ADALv3, um den Wechsel zwischen Benutzer-IDs zu unterstützen ... ähnlich wie bei Gmail?

Wie kann ich konfigurieren Azure AD Benutzerumschaltung zu unterstützen, wie unten dargestellt:

enter image description here

+0

Haben Sie immer noch das Problem mit diesem Szenario? Bitte lassen Sie mich wissen, wenn es hilft. –

+0

@ FeiXue-MSFT Vielen Dank für das Einchecken. Ich habe Ihre Antwort viele Male neu gelesen, und nicht sicher, was die Wirkung von 'context.ProtocolMessage.Parameters.Add' und wie ich Cookies verwenden sollte, um dies zu erreichen. In Wirklichkeit wählen die Leute nicht nur von vielen MSAL- oder ADAL-Konten, sondern auch von Konten von Drittanbietern. – LamonteCristo

Antwort

3

Es gibt keine solche Funktion durch die ADAL bieten, müssen wir uns implementieren.

Um beispielsweise dieses Ziel in MVC zu erreichen, können wir den Benutzernamen des Login in Cookies speichern. Dann können wir die Benutzer über den Parameter login_hint=userName wechseln. Wir brauchen die SignIn Methode unabhängig von den Benutzern geändert werden können Anmelde-wie unten:

public void SignIn(string userName) 
{   
    HttpContext.GetOwinContext().Authentication.Challenge(new AuthenticationProperties { RedirectUri = "/" }, OpenIdConnectAuthenticationDefaults.AuthenticationType); 
} 

Und wir können die login_hint Parameter über benutzerdefinierte Add die RedirectToIdentityProvider von OpenIdConnectAuthenticationNotifications:

app.UseOpenIdConnectAuthentication(
    new OpenIdConnectAuthenticationOptions 
    { 
     ClientId = clientId, 
     Authority = authority, 
     PostLogoutRedirectUri = postLogoutRedirectUri, 
     RedirectUri = postLogoutRedirectUri, 
     Notifications = new OpenIdConnectAuthenticationNotifications 
     { 

      RedirectToIdentityProvider=context=> 
      { 

       var userName = context.Request.Query.Get("userName"); 
       context.ProtocolMessage.Parameters.Add("login_hint", userName); 
       return Task.FromResult(0); 
      } 
     },  
    }); 

Und im Blick , wir müssen die Benutzeroberfläche zur Verfügung stellen, um Benutzer zu wechseln, hier ist ein einfaches Beispiel, nur um zu demonstrieren, können Sie den Code ändern erhalten Sie den Benutzernamen von Benutzern aus Cookies:

Verwandte Themen