2016-07-28 30 views
2

Ich verwende IdentityServer Version 4, um die Autorisierung für meine ASP.NET-Anwendung mithilfe des Ressourceneignerflusses zu verarbeiten.IdentityServer Die IsActiveAsync-Methode wird nicht im Profildienst aufgerufen

Ich habe die IdentityServer4.Core.Services.IProfileService Schnittstelle implementiert, die zwei Methoden hat, GetProfileDataAsync und IsActiveAsync.

Wenn eine Anforderung an den Token-Endpunkt gesendet wird, wird GetProfileDataAsync wie erwartet aufgerufen. Wir verwenden diese Methode, um unsere Ansprüche zu stellen.

Die IsActiveAsync Methode wird jedoch nicht aufgerufen. Ich möchte diese Methode implementieren, um festzustellen, ob der Benutzer in unserer Datenbank aktiv ist. An welchem ​​Punkt soll diese Methode aufgerufen werden?

Der Kommentar in der IdentityServer-Quelle (siehe unten) schlägt vor, dass er während der Tokenausgabe aufgerufen werden sollte, aber die Methode wird nicht aufgerufen, wenn ein Token angefordert wird. Ich vermute, dass ich etwas vermisse. Jede Hilfe wäre willkommen.

// Summary: 
    // This method gets called whenever identity server needs to determine 
    // if the user is valid or active (e.g. if the user's account has been 
    // deactivated since they logged in). (e.g. during token issuance or 
    // validation). 

    Task IsActiveAsync(IsActiveContext context); 

Antwort

3

Gerade jetzt IsActiveAsync nicht für Ressourceneigentümer Passwort-Anfragen aufgerufen. Ich nehme an, die Annahme war, dass Sie einen Benutzer nicht erfolgreich authentifizieren würden, wenn der Benutzer inaktiv ist.

Über diese Details ist noch nicht entschieden - wenn Sie eine starke Meinung darüber haben, wie das funktionieren soll - bitte öffnen Sie ein Problem auf github. Wir werden die API Ende August sperren.