Udostępnij za pośrednictwem


Directory.SetAccessControl(String, DirectorySecurity) Metoda

Definicja

Stosuje wpisy listy kontroli dostępu (ACL) opisane przez obiekt DirectorySecurity do określonego katalogu.

public:
 static void SetAccessControl(System::String ^ path, System::Security::AccessControl::DirectorySecurity ^ directorySecurity);
public static void SetAccessControl (string path, System.Security.AccessControl.DirectorySecurity directorySecurity);
static member SetAccessControl : string * System.Security.AccessControl.DirectorySecurity -> unit
Public Shared Sub SetAccessControl (path As String, directorySecurity As DirectorySecurity)

Parametry

path
String

Katalog do dodawania lub usuwania wpisów listy kontroli dostępu (ACL).

directorySecurity
DirectorySecurity

Obiekt DirectorySecurity opisujący wpis listy ACL, który ma być stosowany do katalogu opisanego przez parametr path.

Wyjątki

Parametr directorySecurity jest null.

Nie można odnaleźć katalogu.

path był nieprawidłowy.

Bieżący proces nie ma dostępu do katalogu określonego przez path.

-lub-

Bieżący proces nie ma wystarczających uprawnień do ustawienia wpisu listy ACL.

Uwagi

Metoda SetAccessControl stosuje wpisy listy kontroli dostępu (ACL) do katalogu, który reprezentuje niezaheritowaną listę listy ACL.

Ostrożność

Lista ACL określona dla parametru directorySecurity zastępuje istniejącą listę ACL katalogu. Aby dodać uprawnienia dla nowego użytkownika, użyj metody GetAccessControl, aby uzyskać istniejącą listę ACL i zmodyfikować ją.

Lista ACL opisuje osoby i grupy, które mają lub nie mają praw do określonych akcji dla danego pliku lub katalogu. Aby uzyskać więcej informacji, zobacz Instrukcje: dodawanie lub usuwanie wpisów listy kontroli dostępu.

Metoda SetAccessControl utrzymuje się tylko DirectorySecurity obiektów, które zostały zmodyfikowane po utworzeniu obiektu. Jeśli obiekt DirectorySecurity nie został zmodyfikowany, nie zostanie on utrwalone w pliku. W związku z tym nie można pobrać obiektu DirectorySecurity z jednego pliku i ponownie zastosować ten sam obiekt do innego pliku.

Aby skopiować informacje listy ACL z jednego pliku do innego:

  1. Użyj metody GetAccessControl, aby pobrać obiekt DirectorySecurity z pliku źródłowego.

  2. Utwórz nowy obiekt DirectorySecurity dla pliku docelowego.

  3. Użyj metody GetSecurityDescriptorBinaryForm lub GetSecurityDescriptorSddlForm obiektu źródłowego DirectorySecurity, aby pobrać informacje listy ACL.

  4. Użyj metody SetSecurityDescriptorBinaryForm lub SetSecurityDescriptorSddlForm, aby skopiować informacje pobrane w kroku 3 do obiektu DirectorySecurity docelowego.

  5. Ustaw docelowy obiekt DirectorySecurity na plik docelowy przy użyciu metody SetAccessControl.

W środowiskach NTFS ReadAttributes i ReadExtendedAttributes są przyznawane użytkownikowi, jeśli użytkownik ma ListDirectory prawa do folderu nadrzędnego. Aby odmówić ReadAttributes i ReadExtendedAttributes, odmów ListDirectory w katalogu nadrzędnym.

Dotyczy

Zobacz też