Получение имени пользователя внутри класса модели

StackOverflow https://stackoverflow.com/questions/820935

  •  03-07-2019
  •  | 
  •  

Вопрос

Я пытаюсь внедрить базовый аудит с некоторыми моими моделями (такими как CreatedAt, updatedAt, CreatedBy и updatedBy).

Дата / время завершены. Я генерирую события в моих моделях при изменении свойства (реализуя INotifyPropertyChanging, INotifyPropertyChanged ) и могу обновлять соответствующие поля очень хорошо.

Мне просто нужно знать, как получить текущее имя пользователя без необходимости передавать его через контроллер каждый раз, когда я создаю экземпляр или получаю существующий экземпляр модели.

Это было полезно?

Решение

  

Ссылки на System.Web и использование   HttpContext.Current.User.Identity.Name   работал как шарм.

Я не знал об этом. Благодарю. Я делаю это так:

Membership.GetUser().UserName

Какой способ быстрее?

Другие советы

Абстрактный способ говорить об идентичности - это "принципал" - см. эту тему . Я надеюсь, что этот код позволит вам получить удостоверение личности, не зная о реализации входа в систему:

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();

Ссылка System.Web и использование HttpContext.Current.User.Identity.Name работали как шарм.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top