服务器非提升运行时,我的net.pipe WCF绑定不起作用。这个博客帮助我找到了答案-http: //weblogs.thinktecture.com/cweyer/2007/12/dealing-with-os-privilege-issues-in-wcf-named-pipes-scenarios.html
因此,我向相关的非管理员用户添加了SeCreateGlobalPrivilege特权,但是现在我必须以编程方式在.NET中启用该特权。
现在,互联网上有几个示例如何在.NET中执行此操作,但是所有这些示例实际上都是使用P / Invoke将纯C代码重写为C#的。
我希望知道如何使用专用的.NET系统类型(例如ObjectSecurity,Privilege等)来执行此操作,以便我的代码不执行任何P / Invoke-让系统代码为我执行。
可能吗?
谢谢。
编辑1
是什么让我认为这是可能的?好吧,我使用Reflector在.NET中搜索AdjustTokenPrivileges P / Inovke API的用法,发现有ObjectSecurity.Persist方法,该方法最终调用了此P / Invoke。接下来,此ObjectSecurity具有一个受保护的构造函数,这意味着非MS代码可以从其派生并调用此方法。
因此,使用类型安全的.NET代码似乎是可行的(即无反射)。