c#フォルダの作成と権限の設定

1477 ワード

/*
          :
using System.IO;
using System.Security.AccessControl;
*/

string sPath = Server.MapPath(        );
Directory.CreateDirectory(sPath);
addpathPower(sPath, "ASPNET", "FullControl");

//////////////////////////////////////////////////

public void addpathPower(string pathname, string username, string power)
{

    DirectoryInfo dirinfo = new DirectoryInfo(pathname);

    if ((dirinfo.Attributes & FileAttributes.ReadOnly) != 0)
    {
        dirinfo.Attributes = FileAttributes.Normal;
    }

    //        
    DirectorySecurity dirsecurity = dirinfo.GetAccessControl();

    switch (power)
    {
        case "FullControl":
            dirsecurity.AddAccessRule(new FileSystemAccessRule(uername, FileSystemRights.FullControl, InheritanceFlags.ContainerInherit, PropagationFlags.InheritOnly, AccessControlType.Allow));
            break;
        case "ReadOnly":
           dirsecurity.AddAccessRule(new FileSystemAccessRule(username, FileSystemRights.Read, AccessControlType.Allow));
            break;
        case "Write":
            dirsecurity.AddAccessRule(new FileSystemAccessRule(username, FileSystemRights.Write, AccessControlType.Allow));
            break;
        case "Modify":
            dirsecurity.AddAccessRule(new FileSystemAccessRule(username, FileSystemRights.Modify, AccessControlType.Allow));
            break;
    }
    dirinfo.SetAccessControl(dirsecurity);
}