So erhalten Sie Benutzerinformationen in DbContext mithilfe von Net CoreC#

Ein Treffpunkt für C#-Programmierer
Guest
 So erhalten Sie Benutzerinformationen in DbContext mithilfe von Net Core

Post by Guest »

Ich versuche, eine Klassenbibliothek zu entwickeln, in der ich benutzerdefinierten DbContext implementieren möchte. In der SaveChanges-Methode des DbContext muss ich zu Prüfzwecken die Informationen des aktuellen Benutzers (Abteilung, Benutzername usw.) abrufen. Ein Teil des DbContext-Codes ist unten:

Code: Select all

public override int SaveChanges()
{
// find all changed entities which is ICreateAuditedEntity
var addedAuditedEntities = ChangeTracker.Entries()
.Where(p => p.State == EntityState.Added)
.Select(p => p.Entity);

var now = DateTime.Now;

foreach (var added in addedAuditedEntities)
{
added.CreatedAt = now;
added.CreatedBy = ?;
added.CreatedByDepartment = ?
}
return base.SaveChanges();
}
Zwei Optionen fallen mir ein:
  • Verwenden von HttpContext.Items um Benutzerinformationen zu behalten, IHttpContextAccessor einzufügen und Informationen von
    abzurufen

    Code: Select all

    HttpContext.Items
    (In diesem Fall hängt DbContext von HttpContext ab, ist es
    korrekt?)
  • Verwenden des ThreadStatic-Objekts anstelle von HttpContext.Items und Informationen vom Objekt abrufen (ich habe einige Beiträge gelesen
    dass ThreadStatic nicht sicher ist)
Frage : Welche Passt es am besten in meinen Fall? Gibt es einen anderen Weg, den Sie vorschlagen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post