При использовании объектной модели TFS, ACL уровня элемента можно установить с помощью метода VersionControlServer.SetPermissions. Этот метод принимает массив объектов SecurityChange, которые PermissionChange наследует. Класс PermissionChange принимает массивы строк для Разрешить разрешения, Запретить разрешения и Удаляет (чтобы сбросить определенное разрешение обратно, чтобы отменить). Эти разрешения на уровне элементов можно просмотреть с помощью метода VersionControlServer.GetPermissions.TFS: Можно ли удалить объекты разрешений объектов из управления версиями?
Когда права доступа на уровне элемента заданы с помощью метода VersionControlServer.SetPermissions, создается новый объект разрешений с параметром ServerItem, установленным для пути к серверу для этого элемента. Объект разрешений имеет свойство «Записи», которое содержит запись для каждого пользователя или группы, определенных выше элемента управления источником, даже если все разрешения для этого пользователя или группы наследуются. Кроме того, даже при сбросе разрешений, ранее установленных для элемента, объект разрешений остается на сервере, хотя он не содержит записей, которые не наследуются.
Короче говоря, похоже, что с течением времени размер этих объектов разрешений строго возрастает. Производительность этих методов начинает страдать из-за большого количества возвращаемой информации (например, на уровне филиала), и я не знаю метода RemovePermissions любого типа для их очистки. Существует ли такая вещь? Как я могу удалить их навсегда, чтобы объекты просто прозрачно наследовали свои ACL без этих беспорядочных объектов, определенных на сервере?
Какую версию сервера TFS вы используете? Если это 2010 или позже, есть способ исправить это, и я могу это объяснить. –
Мы используем tfs 2010, да. – bwerks
См. Ниже и дайте мне знать, если у вас есть вопросы. –