Thread.CurrentPrincipal.Identity.Name在WPF中为空
本文关键字:WPF CurrentPrincipal Identity Name Thread | 更新日期: 2023-09-27 18:02:02
编辑
简单的问题是,如何让Thread.CurrentPrincipal.Identity.Name
让当前用户登录WPF?
结束编辑
我试图调用一个现有的方法(不在任何类型的服务中;只是POCO中的一个方法(,该方法使用检索当前用户
Thread.CurrentPrincipal.Identity.Name
这段代码是别人写的,(大概(与他的ASP.NET MVC项目一起使用。我正在尝试从WPF调用相同的方法,现在Name为空。
对此我能做些什么吗?
将Thread.CurrentPrincipal
设置为new WindowsPrincipal(WindowsIdentity.GetCurrent())
。然后,您将可靠地获得该线程生命周期内的当前主体。你必须在你旋转的任何其他线程上重复这个。
编辑:我还应该提到AppDomain上的SetThreadPrincipal和SetPrincipalPolicy方法。这应该在应用程序启动时完成,现在创建的新线程将默认看到此主体。如果不调用此方法,则每个新线程都将再次使用GenericPrincipal启动。
尝试
System.Security.Principal.WindowsIdentity.GetCurrent().Name;
或:
Environment.UserName
这也对我有用:
Thread.CurrentPrincipal = new WindowsPrincipal(WindowsIdentity.GetCurrent());