2017-07-20 3 views
0

Wie stelle ich die redirectUri für verschiedene Umgebungen ein? In meiner Entwicklungsumgebung möchte ichOpenIdConnectAuthenticationOptions azure Active Directory Einstellung der RedirectUri für verschiedene Umgebungen

https://localhost/

und in meinem Einsatz azur Version zurückkehren will ich

https://appname.portal.p.azurewebsites.net/

In meinem startup.auth.cs zurückkehren Datei Ich habe diese

Wenn ich im Freigabemodus laufen, wird es nicht funktionieren, ich gebe meinen Benutzernamen und mein Passwort ein und ich bekomme

Bad Request - Anfrage zu lang

HTTP Error 400. Die Größe des Request-Header ist zu lang.

aber es funktioniert im Debug auf meinem lokalen Rechner

Antwort

0

Um die Web-App Umleitung basierend auf der aktuellen HTTP-Adresse, können wir die RedirectToIdentityProvider wie Code verwenden unter:

app.UseOpenIdConnectAuthentication(
    new OpenIdConnectAuthenticationOptions 
    { 
     ClientId = clientId, 
     Authority = authority, 

     Notifications = new OpenIdConnectAuthenticationNotifications 
     { 
      AuthenticationFailed = context => 
      { 
       context.HandleResponse(); 
       context.Response.Redirect("/Error?message=" + context.Exception.Message); 
       return Task.FromResult(0); 
      },   
      RedirectToIdentityProvider = context => 
       { 
        string appBaseUrl = context.Request.Scheme + "://" + context.Request.Host + context.Request.PathBase; 
        string currentUrl = context.Request.Scheme + "://" + context.Request.Host + context.Request.Path; 
        context.ProtocolMessage.RedirectUri = currentUrl; 
        context.ProtocolMessage.PostLogoutRedirectUri = appBaseUrl; 
        return Task.FromResult(0); 
       } 
     }  
    }); 
Verwandte Themen