Sovrascrittura di SaveChanges e impostazione di ModifiedDate, ma come si imposta ModifiedBy?

Possiedo un’applicazione Web ASP.NET MVC3 con livelli UI, Business ( quadro) e Dati (DbContext). Sto usando il codice di Entity Framework 4.1 First. Al momento, sto DbContext.SaveChanges() l’override di DbContext.SaveChanges() nel livello dati in modo che sia ansible impostare ModifiedDate per tutte le modifiche apportate a qualsiasi object quadro che implementa la mia interfaccia IAuditable . Ho una class DateProvider statica e un metodo (GetCurrentDate) che restituisce DateTime.Now (a meno che non stia eseguendo un test, nel qual caso restituisce tutto ciò che gli ho detto).

Vorrei impostare automaticamente la proprietà ModifiedBy all’utente corrente. Qual è il modo migliore per farlo? C’è qualcosa che è costruito nel framework che mi consentirà di accedere a queste informazioni o devo impostare qualcosa di simile alla class DateProvider ? Questo è un ambiente Active Directory e utilizziamo WindowsAuthentication in IIS.

Ecco il mio codice SaveChanges:

 public override int SaveChanges() { var changeSet = ChangeTracker.Entries(); if (changeSet != null) { foreach (var entry in changeSet.Where(c => c.State != EntityState.Unchanged)) { entry.Entity.ModifiedDate = DateProvider.GetCurrentDate(); } } return base.SaveChanges(); }