如何在不使用P / Invoke或reflection的情况下在.NET中启用SeCreateGlobalPrivilege?

当服务器运行非提升时,我的net.pipe WCF绑定不起作用。 这个博客帮助我找到答案 – http://weblogs.thinktecture.com/cweyer/2007/12/dealing-with-os-privilege-issues-in-wcf-named-pipes-scenarios.html

因此,我将SeCreateGlobalPrivilege权限添加到相关的非管理员用户,但现在我必须在.NET中以编程方式启用该权限

现在,互联网上有几个例子如何在.NET中完成它,但它们都基本上用C / Invoke将普通C代码重写为C#。

我想知道如何使用专用的.NET系统类型,如ObjectSecurity,Privilege等,以便我的代码不做任何P / Invoke – 让系统代码为我做。

可能吗?

谢谢。

EDIT1

是什么让我觉得有可能? 好吧,我使用Reflector搜索.NET中的AdjustTokenPrivileges P / Inovke API用法,发现有ObjectSecurity.Persist方法,最终调用此P / Invoke。 接下来,此ObjectSecurity具有一个受保护的构造函数,这意味着非MS代码可以从中派生并调用此方法。

因此,使用类型安全的.NET代码(即没有reflection)似乎是可行的。