Thread.CurrentPrincipal在.NET控制台应用程序
发布时间:2020-12-13 20:07:57 所属栏目:Windows 来源:网络整理
导读:这是一个平凡的控制台应用程序,我在命令提示符下运行: using System;using System.Threading;namespace Test{ internal class Runner { [STAThread] static void Main(string[] args) { Console.WriteLine(Thread.CurrentPrincipal.GetType().Name); Consol
这是一个平凡的控制台应用程序,我在命令提示符下运行:
using System; using System.Threading; namespace Test { internal class Runner { [STAThread] static void Main(string[] args) { Console.WriteLine(Thread.CurrentPrincipal.GetType().Name); Console.WriteLine(Thread.CurrentPrincipal.Identity.Name); } } } 输出为“GenericPrincipal”,空字符串为标识名称.为什么运行时构造GenericPrincipal而不是WindowsPrincipal?如何强制它从启动进程的安全令牌(在我的情况下为cmd.exe)构造WindowsPrincipal?
你必须告诉你的应用程序使用什么PrincipalPolicy.你会添加
AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal); 使您的代码看起来像: using System; using System.Threading; using System.Security.Principal; namespace Test { internal class Runner { [STAThread] static void Main(string[] args) { AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal); Console.WriteLine(Thread.CurrentPrincipal.GetType().Name); Console.WriteLine(Thread.CurrentPrincipal.Identity.Name); } } } 见http://msdn.microsoft.com/en-us/library/system.appdomain.setprincipalpolicy.aspx (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 在Windows中更改JAVA_HOME系统变量的脚本
- Anaconda Navigator无法打开. “ImportError:DLL加载失败:
- windows – 最好的安装程序是什么?
- 安装MPI for Windows
- windows-server-2003 – WMI会导致CPU蠕变吗?
- windows – 如何证明两个文件在法律上是一样的?
- WebKitBrowser
- WPF图标规范,支持Windows 7并向后兼容
- windows-server-2008-r2 – Windows Server 2008 R2因为没有
- windows – msi for Web Deploy 3.6 for Hosting Servers …