我正在尝试使用我的一些模型(如CreatedAt,UpdatedAt,CreatedBy和UpdatedBy)实现基本审核。
日期/时间部分已完成。当属性发生变化时,我会在我的模型上抛出事件(实现INotifyPropertyChanging, INotifyPropertyChanged
)并且可以更新相应的字段。
我只需要知道如何获取当前用户名,而不必在每次实例化或获取模型的现有实例时都将其传递给控制器。
答案 0 :(得分:2)
引用System.Web并使用 HttpContext.Current.User.Identity.Name 像魅力一样工作。
我不知道。谢谢。 我是这样做的:
Membership.GetUser().UserName
哪种方式更快?
答案 1 :(得分:2)
谈论身份的抽象方式是“主体” - 见this thread。我希望这段代码可以让你在不必知道登录实现的情况下获得身份:
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();
答案 2 :(得分:1)
引用System.Web
并使用HttpContext.Current.User.Identity.Name
就像魅力一样。