2016-10-17 1 views
1

Ich habe eine neue MVC-App eingerichtet, die für die Verwendung von ADFS für die Verbundauthentifizierung konfiguriert ist (gemäß this article).So verwenden Sie die Verbundauthentifizierung in einer MVC-App, ohne sie zum Standardauthentifizierungstyp zu machen

Alles funktioniert gut, aber ich möchte ändern, wie es funktioniert, und ich bin mir nicht ganz sicher, wie.

Wenn ich das Projekt erstellt (in VS2015), gibt es Sachen in Starup.Auth.cs die Dinge einrichtet föderieren Auth zu verwenden:

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

    app.UseCookieAuthentication(new CookieAuthenticationOptions()); 

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

Das macht es so, dass alles, was in meinem MVC-app, die ist Das Attribut [Authorize] erfordert, dass der Benutzer angemeldet ist (und somit zur ADFS-Anmeldeseite umgeleitet wird).

Stattdessen möchte ich selbst entscheiden, wann diese Umleitung passieren soll.

Wie kann ich die Konfiguration ändern, sodass ich den Authentifizierungsablauf manuell auslösen kann, anstatt ihn an [Authorize] gebunden zu haben?

Antwort

0

Ich denke, die Lösung ist, meine eigene Authentifizierung Middleware zu machen, und wenn er entscheidet, dass ein anderer Authentifizierungsanbieter erforderlich ist, gibt es einen Aufruf an context.HttpContext.GetOwinContext().Authentication.Challenge() (wie in den ChallengeResult Helfern, die mit einem Standard-MVC-Projekt in VS2015 kommt, die verwendet "Invidiuelle Authentifizierung".

Verwandte Themen