zoukankan      html  css  js  c++  java
  • 用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);
  • 相关阅读:
    预设池(滑雪大冒险)
    随机
    python select模块详解
    轮询、长轮询、长连接、websocket
    Python中的栈溢出及解决办法
    JavaScript中的this的指代对象详解
    Django--缓存、信号、序列化
    SQLAlchemy中的自引用
    Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
    虚拟机下安装centos7方法,修改系统语言为简体中文的方法
  • 原文地址:https://www.cnblogs.com/boolean/p/833173.html
Copyright © 2011-2022 走看看