от
У меня есть веб-приложение ASP.NET MVC, которое управляет безопасностью папок. Когда я хочу добавить или удалить пользователя из определенной папки, это занимает слишком много времени (через 5 минут я прекращаю выполнение). Эта конкретная папка имеет размер 50 ГБ, имеет 11 389 файлов и 470 папок. Это папка общего доступа в нашей сети. Это код
public void Remove(UserPrincipal user)
{
    if (Directory.Exists(_folderPath))
    {
        DirectorySecurity dSecurity = Directory.GetAccessControl(_folderPath);
        var rule = new FileSystemAccessRule(new SecurityIdentifier(user.Sid.ToString()), FileSystemRights.Read, AccessControlType.Allow);
        bool isModified;
        dSecurity.ModifyAccessRule(AccessControlModification.RemoveAll,rule, out isModified);
        if(isModified)
            Directory.SetAccessControl(_folderPath, dSecurity);
    }
}
Есть ли в любом случае я могу сделать это быстрее? Или использовать другую библиотеку?              

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

1 Ответ

0 голосов
от
звучит больше как недостаток дизайна. Добавление / удаление доступа к папке рекурсивно означает, что применяются к КАЖДОМУ файлу / папке разрешения, звучит честно, это занимает много времени. Я предлагаю создать группы AD для каждой роли и ДОБАВИТЬ / УДАЛИТЬ пользователей из этой роли, которые имеют требуемый доступ.     
Добро пожаловать на сайт ByNets, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...