大佬教程收集整理的这篇文章主要介绍了WCF自主服务,安装程序类和netsh,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
"netsh http add urlacl url=http://+:8888/ user=\Everyone"
我想从我的安装程序类编辑http设置.因此,我从Install()方法调用以下方法:
public void ModifyhttpSetTings() { String parameter = @"http add urlacl url=http://+:8888/ user=\Everyone"; System.Diagnostics.processStarTinfo psi = new System.Diagnostics.processStarTinfo("netsh",parameter); psi.Verb = "runas"; psi.RedirectStandardOutput = false; psi.CreateNowindow = true; psi.WindowStyle = System.Diagnostics.processWindowStyle.Hidden; psi.UseSHellExecute = false; System.Diagnostics.process.Start(psi); }
此方法适用于英文版本的Windows,但不适用于本地化版本(群组Everyone在本地化版本中具有不同的名称).我也试图使用Environment.UserName来允许至少访问当前登录的用户.但是这也不行,因为安装程序类由在用户SYstem下运行的msi服务运行.因此Enviroment.UserName返回SYstem,这不是我想要的.有没有办法向msi安装程序类的所有(或至少为当前登录的)用户授予对我自己的主机WCF服务的访问权限?
public void ModifyhttpSetTings() { String everyone = new System.Security.Principal.SecurityIdentifier( "S-1-1-0").Translate(typeof(System.Security.Principal.NTAccount)).ToString(); String parameter = @"http add urlacl url=http://+:8888/ user=\" + everyone; ProcessStarTinfo psi = new ProcessStarTinfo("netsh",parameter); psi.Verb = "runas"; psi.RedirectStandardOutput = false; psi.CreateNowindow = true; psi.WindowStyle = ProcessWindowStyle.Hidden; psi.UseSHellExecute = false; Process.Start(psi); }
SID“S-1-1-0”是一个众所周知的SID,代表“Everyone”帐户. Windows的所有本地化版本都相同.方法Translate of SecurityIdentifier类返回Everyone帐户的本地化名称.
以上是大佬教程为你收集整理的WCF自主服务,安装程序类和netsh全部内容,希望文章能够帮你解决WCF自主服务,安装程序类和netsh所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。