Create shared folder accessible from domain with C#

久未见 提交于 2019-12-11 14:08:57

问题


I'm doing a Deployment Project in VS2008, and at the end of the installation flow I need to create a shared folder with Full Control permissions to Everyone on the local machine accessible from a company domain. I succeeded to create the shared folder, but Everyone has read access. Any help on how to do this would be appreciated.

Thank you, Valeriu


回答1:


I assume you're using the ManagementClass to create a shared folder.

Setting the Access field of your ManagementBaseObject should give full control to everyone:

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

If the above doesn't work you might wanna try explicitly setting the security level with smt like the following:

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

If none of the above helps, then I'd suggest you post your code.



来源:https://stackoverflow.com/questions/1783372/create-shared-folder-accessible-from-domain-with-c-sharp

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!