使用C#创建可从域访问的共享文件夹

时间:2009-11-23 14:16:28

标签: c# deployment-project

我正在VS2008中进行部署项目,在安装流程结束时,我需要创建一个共享文件夹,该文件夹具有对可从公司域访问的本地计算机上的所有人的完全控制权限。 我成功创建了共享文件夹,但Everyone具有读取权限。 如何做任何帮助将不胜感激。

谢谢你, 瓦列

1 个答案:

答案 0 :(得分:0)

我假设你正在使用ManagementClasscreate a shared folder

设置ManagementBaseObject的访问权限字段应该可以完全控制每个人:

ManagementClass mc = new ManagementClass("win32_share");
ManagementBaseObject inParams = mc.GetMethodParameters("Create");
inParams["Description"] = "Shared Folder";
// ... whathever ...
inParams["Access"] = null; // <-- should give full control access to everyone

如果上述方法不起作用,您可能需要尝试使用smt显式设置安全级别,如下所示:

    public static void AddDirectorySecurity(string FileName, string Account, FileSystemRights Rights, AccessControlType ControlType)
    {
        DirectoryInfo dInfo = new DirectoryInfo(FileName);

        DirectorySecurity dSecurity = dInfo.GetAccessControl();

        // Add the FileSystemAccessRule to the security settings.  
        dSecurity.AddAccessRule(new FileSystemAccessRule(Account,
                                                         Rights,
                                                         ControlType));
        // Set the new access settings. 
        dInfo.SetAccessControl(dSecurity);
    } 

如果以上都没有帮助,那么我建议你发布你的代码。