您的位置:首页 > 编程语言 > ASP

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

2007-02-08 18:49 387 查看

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(0, 2);


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();


}


}


}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐