Directory.SetAccessControl(String, DirectorySecurity) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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:
Użyj metody GetAccessControl, aby pobrać obiekt DirectorySecurity z pliku źródłowego.
Utwórz nowy obiekt DirectorySecurity dla pliku docelowego.
Użyj metody GetSecurityDescriptorBinaryForm lub GetSecurityDescriptorSddlForm obiektu źródłowego DirectorySecurity, aby pobrać informacje listy ACL.
Użyj metody SetSecurityDescriptorBinaryForm lub SetSecurityDescriptorSddlForm, aby skopiować informacje pobrane w kroku 3 do obiektu DirectorySecurity docelowego.
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.