Programmiski iestatīšanu NTFS failu sistēmas mapes atļaujas, izmantojot Active Directory pakalpojums saskarnes ar Microsoft Visual c#

Microsoft iekšējā atbalsta informācija

KĻŪDAS numurs: 38941 (satura uzturēšana)

IEVADS

Šajā rakstā detalizēti izklāstīts, kā iestatīt programmiski, izmantojot pakalpojuma Active Directory interfeisu (ADSI) ar Microsoft Visual c# NTFS failu sistēmas mapes atļaujas.

Papildinformācija

Veidot lietojumprogrammas paraugs

Šī parauga lietojumprogrammas palaišanai ir ADsSecurity.dll failu un ADsSecurity.dll fails. Šie faili ir iekļauta Active Directory Service saskarnes 2.5 programmatūras izstrādes komplekts (SDK). Lai lejupielādētu Active Directory Service saskarnes 2.5 SDK, apmeklējiet šo Microsoft Web vietu:

Piezīme. Datorā palaist lietojumprogrammas paraugs, jums jābūt administratora pilnvarām. Veidot lietojumprogrammas paraugs, rīkojieties šādi:

  1. Startējiet Microsoft Visual Studio .NET vai Microsoft Visual Studio 2005.

  2. Izvēlnē Fails noklikšķiniet uzizveidot jaunuun pēc tam noklikšķiniet uz projektu.

  3. Visual c# projektusadaļā veidnesnoklikšķiniet uzWindows lietojumprogrammu . Piezīme. Visual Studio 2005 Visual c# projekti tiek mainīts uz Visual c#.

  4. Nosaukuma lodziņā ierakstietNTFSPermissionsun pēc tam noklikšķiniet uzLabi.

  5. Pievienot pogas vadīklu Form1 izšķirtspējā.

  6. Projekta izvēlnē noklikšķiniet uz Pievienot atsauces.

  7. Noklikšķiniet uz cilnes COM atlasīt šādus vienumus un pēc tam noklikšķiniet uz Labi:

    • Aktīvā DS tipu bibliotēka

    • ADsSecurity 2.5 tipu bibliotēka

  8. Ar peles labo pogu noklikšķiniet uz Form1 formas un pēc tam noklikšķiniet uzSkatīt kodu.

  9. Izmantojot šos priekšrakstus pievienot pirmkodu Form1 formas augšdaļā.

    using ADSSECURITYLib;using ActiveDs;
  10. Klases Form1 pievienojiet šo metodi.

    public void SetPermissions(String vPath, String UserName ){ADsSecurity objADsSec;SecurityDescriptor objSecDes;AccessControlList objDAcl;AccessControlEntry objAce1;AccessControlEntry objAce2;Object objSIdHex;ADsSID objSId;objADsSec = new ADsSecurityClass();objSecDes = (SecurityDescriptor) (objADsSec.GetSecurityDescriptor("FILE://" + vPath));objDAcl = (AccessControlList)objSecDes.DiscretionaryAcl;objSId = new ADsSIDClass();objSId.SetAs((int)ADSSECURITYLib.ADS_SID_FORMAT.ADS_SID_SAM, UserName.ToString());objSIdHex = objSId.GetAs((int)ADSSECURITYLib.ADS_SID_FORMAT.ADS_SID_SDDL);// Add a new access control entry (ACE) object (objAce) so that the user has Full Control permissions on NTFS file system files.objAce1 = new AccessControlEntryClass();objAce1.Trustee = (objSIdHex).ToString();objAce1.AccessMask = (int)ActiveDs.ADS_RIGHTS_ENUM.ADS_RIGHT_GENERIC_ALL;objAce1.AceType = (int)ActiveDs.ADS_ACETYPE_ENUM.ADS_ACETYPE_ACCESS_ALLOWED;objAce1.AceFlags = (int)ActiveDs.ADS_ACEFLAG_ENUM.ADS_ACEFLAG_INHERIT_ACE | (int)ActiveDs.ADS_ACEFLAG_ENUM.ADS_ACEFLAG_INHERIT_ONLY_ACE | 1;objDAcl.AddAce(objAce1);// Add a new access control entry object (objAce) so that the user has Full Control permissions on NTFS file system folders.objAce2 = new AccessControlEntryClass();objAce2.Trustee = (objSIdHex).ToString();objAce2.AccessMask =  (int)ActiveDs.ADS_RIGHTS_ENUM.ADS_RIGHT_GENERIC_ALL;objAce2.AceType = (int)ActiveDs.ADS_ACETYPE_ENUM.ADS_ACETYPE_ACCESS_ALLOWED;objAce2.AceFlags = (int)ActiveDs.ADS_ACEFLAG_ENUM.ADS_ACEFLAG_INHERIT_ACE | 1;objDAcl.AddAce(objAce2);objSecDes.DiscretionaryAcl = objDAcl;// Set permissions on the NTFS file system folder.objADsSec.SetSecurityDescriptor(objSecDes,"FILE://" + vPath);}
  11. Noklikšķiniet uz cilnes Form1.cs [noformējums] pārslēgties uz noformēšanas režīms.

  12. Veiciet dubultklikšķi uz button1. Nomainietbutton1_Click notikuma kods ar šādu kodu.

    private void button1_Click(object sender, System.EventArgs e){try {// Set <Domain> to your domain name.// Set <UserName> to the user account.SetPermissions("C:\\Test", "<Domain>\\<UserName>");MessageBox.Show("Full Access control granted.");}catch (Exception ex){MessageBox.Show(ex.Message);}}

    Piezīme. Nomainiet < Domain > domēna nosaukumu. < UserName > aizstājiet ar nosaukumu lietotājam, kuram vēlaties piešķirt atļaujas.

  13. Veidot izvēlnē noklikšķiniet uz Izveidot risinājumu.

Testa parauga lietojumprogrammas

  1. Izveidojiet mapi C diska saknes mapē. Nosauciet tests.

  2. Programmā Windows Explorer, ar peles labo pogu noklikšķiniet uz mapes pārbaudi, un pēc tam noklikšķiniet uz Rekvizīti.

  3. Testa rekvizītu dialoglodziņā noklikšķiniet uz zīmnes Drošība .

  4. Atlasiet domēna kontu, jūs izmantojat šo pārbaudi. Ja konts nav norādīts, noklikšķiniet uz pievienojumprogrammasun pēc tam pievienojiet domēna kontu saraksts.

  5. Sadaļā atļaujas, noklikšķiniet, lai notīrītu izvēles rūtiņuPilnīga kontrole ierobežot atļaujas testa mapi šim lietotājam. Pēc tam noklikšķiniet uz Labi.

  6. Palaidiet programmu NTFSPermission.exe. Pēc noklusējuma tiek rādītaForm1 .

  7. Noklikšķiniet uz button1. Tiek parādīts šāds ziņojums:

    Pilnas piekļuves vadība piešķirta.

  8. Noklikšķiniet uz Labi , lai aizvērtu ziņojuma lodziņu.

  9. Aizveriet formu, lai aizvērtu programmu.

  10. Programmā Windows Explorer atveriet mapi C:\ .

  11. Ar peles labo pogu noklikšķiniet uz mapes pārbaudi , un pēc tam noklikšķiniet uz Rekvizīti.

  12. Testa rekvizītu dialoglodziņā noklikšķiniet uz zīmnes Drošība .

  13. Atlasiet domēna kontu, kurai ir darbojas šajā pārbaudē un pēc tam pārbaudiet, vai testa mapes atļaujas.

Norādītais lietotājs tagad ir pilnīgas kontroles atļaujas testa mapē.

Atsauces

Lai iegūtu papildinformāciju, noklikšķiniet uz šiem rakstu numuriem un lasiet Microsoft zināšanu bāzes rakstus:

kā ADsSecurity.dll izmantot, lai pievienotu piekļuves vadības ieraksts NTFS mapē

kā izmantot ADSI iestatīt automātisku fails/mape atļauju pārmantošana

Vai nepieciešama papildu palīdzība?

Paplašiniet savas prasmes
Iepazīties ar apmācību
Esiet pirmais, kas saņem jaunās iespējas
Pievienoties Microsoft Insider

Vai šī informācija bija noderīga?

Paldies par jūsu atsauksmēm!

Paldies par atsauksmēm! Šķiet, ka jums varētu būt noderīgi sazināties ar kādu no mūsu Office atbalsta speciālistiem.

×