用c#添加Networkservice对文件夹的写权限

      一般的bs程序都会涉及到上传文件,这就要求network service用户有对文件夹的写权限,通常情况下我们都是用打包时调用打包程序的脚本去设置权限,在不打包的时候更多的就是手工去设置了,如果仅对一两个文件夹设置部署工作还不是很繁琐,但在当系统可以安插模块的情况下,模块数就可能比较多,而又不好把所有的文件都放到一个目录下,这时动态的让程序自己去设置特定的权限就会比较有优越性。
      查阅资料的过程用了半天时间,首先想到的是看看系统有没有这样的命令,马上cmd键入help回车,看到一个cacls似乎看到了希望,简单看了一下帮助信息,然后搜索一下看看别人的经验,最后发现这个只是对文件的操作权限的修改,不能实现对文件夹设置权限。最后在 http://www.codeproject.com/dotnet/NTSecurityNET.asp 发现了有一个用vc++写的类库,很方便使用,也比较简单,经测试有效。特写出来与大家分享。以下是我写的一个例子:
string  accountName  =  System.Environment.UserName;
            
string  system  =  System.Environment.MachineName;
            accountName 
=   " NETWORK SERVICE " ;
            Microsoft.Win32.Security.WindowsUser wu 
=   new  Microsoft.Win32.Security.WindowsUser(accountName, system);

            SecuredObject so 
=   new  SecuredObject();
            so.ObjectName 
=   @" d:\test " ;
            so.ObjectType 
=  SecuredObjectType.FileObject;
            so.Permissions.SetAccess(wu, AccessRights.FileWriteUnsync, AceInheritanceFlags.ContainerInherit
|  AceInheritanceFlags.ObjectInherit);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值