WsFederation Authentication-Anmeldeschleife

Ich habe ein Problem mit einer Anmeldeschleife, wenn ich @ verwendWsFederation Authentication in meiner MVC-Webanwendung. Ich habe Visual Studio verwendet, um das Gerüst der Webanwendung zu erstellen und das @ einzurichteWsFederation in demStartup.cs. Womit der folgende Codeblock generiert wird:

public class Startup
{
    private static string realm = ConfigurationManager.AppSettings["ida:Wtrealm"];
    private static string adfsMetadata = ConfigurationManager.AppSettings["ida:ADFSMetadata"];

    public void Configuration(IAppBuilder app)
    {
        app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);

        app.UseCookieAuthentication(new CookieAuthenticationOptions());

        app.UseWsFederationAuthentication(new WsFederationAuthenticationOptions
        {
            Wtrealm = realm,
            MetadataAddress = adfsMetadata
        });
    }
}

Die Webanwendung wird in Azure gehostet und das ADFS befindet sich vor Ort.

Bei einigen Clients wird bei einem Anmeldeversuch die Anmeldeseite in eine Schleife verschoben, in der neue Token angefordert werden, was die folgende Ausnahme auf dem ADFS-Server verursacht:

Ausnahmedetails: Microsoft.IdentityServer.Web.InvalidRequestException: MSIS7042: Dieselbe Client-Browsersitzung hat in den letzten 7 Sekunden 6-Anforderungen gestellt. Weitere Informationen erhalten Sie von Ihrem Administrator.

Ich habe viele Artikel über StackOverflow gelesen und mir die verschiedenen Beispiele der Entwickler von IdentityServer angesehen. Ich habe die verschiedenen Konfigurationsoptionen ausprobiert und kann das Problem nicht auf einen bestimmten Bereich eingrenzen.

Von dem, was ich gelesen habe, ist es ein allgemeines Problem, dass die OWIN-Middleware den Kontext des Objekts verliert und dadurch das Token "verloren" geht.

Ich habe versucht, einige der @ zu implementierBeispielcod, die andere auf StackOverflow bereitgestellt haben, aber ich kann anscheinend keine Lösung finden, die mein Problem behebt, oder ich habe den Code möglicherweise nicht richtig implementiert.

Irgendwelche Ideen

Antworten auf die Frage(2)

Ihre Antwort auf die Frage