Frage

Ich versuche, mit einigen meiner Modellen grundlegende Revision zu implementieren (wie CreatedAt, UpdatedAt, CreatedBy und UpdatedBy).

Das Datum / Zeit-Teil ist fertig. Ich werfe Ereignisse auf meine Modelle, wenn eine Eigenschaft (implementierende INotifyPropertyChanging, INotifyPropertyChanged) geändert wird und kann die entsprechenden Felder in Ordnung aktualisieren.

Ich muss nur wissen, wie die aktuellen Benutzernamen zu erhalten, ohne es durch den Controller ich instanziiert oder bekommen eine bestehende Instanz eines Modells jedes Mal passieren zu müssen.

War es hilfreich?

Lösung

  

Referenzierung System.Web und mit   HttpContext.Current.User.Identity.Name   wie ein Charme.

Ich wusste nicht, über sie. Vielen Dank. Ich mache es wie folgt aus:

Membership.GetUser().UserName

Welcher Weg ist schneller?

Andere Tipps

Die abstrakte Art und Weise über Identität spricht, ist das „Kapital“ - siehe dieses Thema . Ich hoffe, dass dieser Code ermöglicht es Ihnen, die Identität zu erhalten, ohne über die Login-Implementierung kennen:

public static class SomeUtilityClass {
    public static string GetUsername() {
        IPrincipal principal = Thread.CurrentPrincipal;
        IIdentity identity = principal == null ? null : principal.Identity;
        return identity == null ? null : identity.Name;
    }
}
...

record.UpdatedBy = record.CreatedBy = SomeUtilityClass.GetUsername();

Referenzierung System.Web und mit HttpContext.Current.User.Identity.Name arbeitete wie ein Charme.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top