모델 클래스 내에서 사용자 이름을 얻습니다
-
03-07-2019 - |
문제
나는 일부 모델과 함께 기본 감사를 구현하려고 노력하고 있습니다 (생성, 업데이트, 작성 및 업데이트).
날짜/시간 부분이 완료되었습니다. 속성이 변경 될 때 내 모델에 이벤트를 던지고 있습니다 (구현 INotifyPropertyChanging, INotifyPropertyChanged
) 그리고 특파원 필드를 잘 업데이트 할 수 있습니다.
모델의 인스턴스를 인스턴스화하거나 기존 인스턴스를 얻을 때마다 컨트롤러를 통과하지 않고도 현재 사용자 이름을 얻는 방법을 알아야합니다.
해결책
참조 시스템 .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
매력처럼 일했습니다.
제휴하지 않습니다 StackOverflow