2017-12-29 6 views
1

Mein Controller ist mit Autorize-Attribut geschützt. Ich möchte dem Autorize-Attribut mitteilen, dass es überhaupt kein Windows-Schema oder kein Schema verwenden soll. Wie würde ich das erreichen?Wie wird das Schema für das Attribut Autorisieren aus einer TXT-Datei festgelegt?

[Authorize(AuthenticationSchemes = AuthSchemes)] 
  1. Fall: AuthSchemes = "Windows"
  2. Fall: AuthSchemes = ""

Ich mag das Schema während der Laufzeit ändern, so dass der Administrator in der Lage sein, zu ändern Authentifizierungseinstellungen grundsätzlich.

Antwort

0

Nach langer Zeit der Erkenntnis habe ich es geschafft, das funktioniert, aber auf eine nicht so elegante Art und Weise.

Ich habe mich entschieden, das Autorize-Attribut nicht zu verwenden, stattdessen habe ich mich entschieden, einen benutzerdefinierten Authentifizierungsprozess durchzuführen. Also im Grunde migriert I Authentifizierung Middleware auf ASP.NET CORE 2.0 mit benutzerdefinierten Authentifizierungsprozess nach dieser Ressource Migrating authentication middleware to ASP.NET CORE 2.0.

Mit dieser Einrichtung, ich habe eine einfache Klasse gemacht, die verwendet werden, wenn sie von .json Datei zu lesen:

public class AuthenticationSettings 
{ 
    public string AuthenticatonScheme { get; set; } 
    public bool Enabled { get; set; } 
} 

Ich habe auch eine .json-Datei, die Informationen über Wetter enthält, unsere Anwendung sollte Windows-Authentifizierung verwenden oder nicht. Das Lesen der Datei erfolgt in der Startup-Klasse in der ConfigureServices() -Methode. Wenn Windows auf "True" gesetzt ist, erstellen wir eine benutzerdefinierte Richtlinie (mit unserem Schema, das jetzt eingestellt ist), die dann global angewendet wird:

Verwandte Themen