编辑
简单的问题是,如何Thread.CurrentPrincipal.Identity.Name在WPF中获得当前用户登录?
结束编辑
我正在尝试调用现有方法(不是任何类型的服务;只是POCO中的方法),它使用以下方法检索当前用户:
Thread.CurrentPrincipal.Identity.Name
这段代码是由其他人编写的,并且(可能)与他的ASP.NET MVC项目一起工作.我试图从WPF调用相同的方法,而Name现在是空白的.
我能做些什么吗?
And*_*ndy 19
设置Thread.CurrentPrincipal为new WindowsPrincipal(WindowsIdentity.GetCurrent()).然后,您将可靠地获得该线程生命周期的当前主体.你必须在你旋转的任何其他线程上重复这个.
编辑:我还应该提到AppDomain上的SetThreadPrincipal和SetPrincipalPolicy方法.这应该在应用程序启动时完成,创建的新线程现在默认会看到此主体.如果未调用此方法,则每个新线程将再次使用GenericPrincipal.
尝试
System.Security.Principal.WindowsIdentity.GetCurrent().Name;
Run Code Online (Sandbox Code Playgroud)
要么:
Environment.UserName
Run Code Online (Sandbox Code Playgroud)