Создать общую папку, доступную из домена с C#

Я делаю проект развертывания в VS2008, и в конце процесса установки мне нужно создать общую папку с разрешениями "Полный доступ" для всех на локальном компьютере, доступном из домена компании. Мне удалось создать общую папку, но у всех есть права на чтение. Любая помощь о том, как это сделать, будет принята с благодарностью.

Спасибо Валериу

1 ответ

Я полагаю, вы используете ManagementClass создать общую папку.

Настройка поля доступа вашего 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);
    } 

Если ничего из вышеперечисленного не поможет, я бы посоветовал вам опубликовать свой код.

Другие вопросы по тегам