0

Ich arbeite an einem Projekt mit ASP.Net Core und Identity Server 4. Das Projekt verwendet Entity Framework Core, um die Identity Server-Modelle zu speichern.Kann ich die IdentityServer 4-Modelle erweitern?

Identity Server generiert seine eigene DbContexts (ConfigurationDbContext und PersistedGrantsDbContext) und diese Kontexte werden in der Startup-Datei des Projekts injiziert, etwa so:

Startup.cs

var identityServer = services.AddIdentityServer() 
      .AddTemporarySigningCredential() 
      .AddConfigurationStore(builder => builder.UseSqlServer(connectionString, 
       options => options.MigrationsAssembly(migrationsAssembly))) 
      .AddOperationalStore(builder => builder.UseSqlServer(connectionString, 
       options => options.MigrationsAssembly(migrationsAssembly))) 
      .AddAspNetIdentity<ApplicationUser>() 
      .AddProfileService<IdentityProfileService>(); 

Für die Zwecke des Projekts verwenden alle unsere Modelle eine Zeilenversionseigenschaft, um eventuelle Nebenläufigkeitsprobleme während der Aktualisierung zu erfassen.

Objektdefinition im Modell

 /// <summary> 
    /// Concurrency stamp for model 
    /// </summary> 
    [Timestamp] 
    public byte[] RowVersion { get; set; } 

Die Frage ist, wie können wir die Standardmodelle von IdentityServer 4 verlängern? Sollten wir sogar versuchen, diese Modelle zu erweitern?

Ich bin offen für jeden Rat, Vorschläge und Alternativen.
Vielen Dank.

Antwort

0

Sie könnten abgeleitete Klassen erstellen und Ihr RowVersion-Feld zu diesen hinzufügen. Sie müssen eine vollständig andere Datenzugriffsebene zum Lesen und Schreiben in die Datenbank erstellen, da der integrierte ConfigurationDbContext diese abgeleiteten Klassen nicht verwenden kann.

Ich könnte geneigt sein, meine eigenen Modelle zu erstellen und Dapper für meine eigenen Verwaltungsfunktionen wie diese zu verwenden.

Verwandte Themen