文件夹的完全控制权限赋给aspnet用户(ntfs,cacls)

    技术2022-05-11  67

    using  System; using  System.Collections.Generic; using  System.Text; using  System.Net; using  System.IO; using  System.DirectoryServices; using  System.Collections; using  System.Diagnostics; using  System.Management; namespace  GrantUserWritableFile {    public class GrantUser    {        private string directoryInstr = "";        private string directoryPrtfl = "";        private string hostName = "";        public string DomainName = "localhost";        private string userName = "";        private string syspath = "";        private string DriverName = "";        public static void Main(string[] args)        {            GrantUser gu = new GrantUser();            gu.getInfo();            Console.WriteLine("Grant folder to user complited!");        }        public void getInfo()        {            DirectoryEntry de = new DirectoryEntry("IIS://Localhost/W3SVC/1/ROOT/RPA");            this.directoryInstr = (string)de.Properties["Path"].Value + "/InstrumentInfo/ChartImages";            this.directoryPrtfl = (string)de.Properties["Path"].Value + "/PortfolioView/ChartImages";            //this.directoryInstr = "C:/1";            DriverName = de.Properties["Path"].Value.ToString().Substring(02);            this.hostName = Dns.GetHostName().ToString();            this.userName = "IUSR_" + hostName;            this.syspath = Environment.SystemDirectory + "/";            ManagementObjectSearcher DiskSearch = new ManagementObjectSearcher(new SelectQuery("Select * from Win32_LogicalDisk"));            ManagementObjectCollection moDiskCollection = DiskSearch.Get();            foreach (ManagementObject mo in moDiskCollection)            {                if ((mo.SystemProperties["FileSystem"].Value.ToString().ToUpper() == "NTFS"&& (DriverName == mo.SystemProperties["name"].Value.ToString()))                {                    this.SetFolder(directoryInstr, userName);                    this.SetFolder(directoryPrtfl, userName);                }            }        }        public void SetFolder(string PathName,string userName)        {            //if (Directory.Exists(PathName) == true)            //{            //    Directory.Delete(PathName, true);            //}            //Directory.CreateDirectory(PathName);            Process process = new Process();            process.StartInfo.FileName = syspath + "cmd.exe";            process.StartInfo.UseShellExecute = false;            process.StartInfo.RedirectStandardInput = true;            process.StartInfo.RedirectStandardOutput = true;            process.StartInfo.RedirectStandardError = true;            process.StartInfo.CreateNoWindow = false;            process.Start();            process.StandardInput.WriteLine(String.Format("cacls   {0}   /t   /e  /g   {1}:f", PathName, userName));            process.StandardInput.WriteLine("exit");            process.WaitForExit();            process.Close();        }    }}

    最新回复(0)