Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Costruttore RegistryAccessRule (String, RegistryRights, AccessControlType)

 

Data di pubblicazione: ottobre 2016

Inizializza una nuova istanza di RegistryAccessRule classe, specificando il nome dell'utente o del gruppo viene applicata la regola, i diritti di accesso e se i diritti di accesso sono consentiti o negati.

Spazio dei nomi:   System.Security.AccessControl
Assembly:  mscorlib (in mscorlib.dll)

public RegistryAccessRule(
	string identity,
	RegistryRights registryRights,
	AccessControlType type
)

Parametri

identity
Type: System.String

Il nome dell'utente o del gruppo viene applicata la regola.

registryRights
Type: System.Security.AccessControl.RegistryRights

Una combinazione bit per bit di RegistryRights valori che indicano i diritti concessi o negati.

type
Type: System.Security.AccessControl.AccessControlType

Uno del AccessControlType valori che indica se i diritti sono concesse o negati.

Exception Condition
ArgumentOutOfRangeException

registryRights Specifica un valore non valido.

-oppure-

type Specifica un valore non valido.

ArgumentNullException

registryRights è uguale a zero.

ArgumentException

identity è null.

-oppure-

identity è una stringa di lunghezza zero.

-oppure-

identity è più di 512 caratteri.

Questo costruttore specifica ereditarietà e propagazione predefinito. Vale a dire InheritanceFlags.None e PropagationFlags.None.

Questo costruttore è equivalente alla creazione di un NTAccount oggetto, passando identity per il NTAccount.NTAccount(String) costruttore e passando l'oggetto appena creato NTAccount dell'oggetto per il RegistryAccessRule(IdentityReference, RegistryRights, AccessControlType) costruttore.

Esempio di codice seguente crea le regole di accesso del Registro di sistema e li aggiunge a un RegistrySecurity oggetto, che mostra come le regole che consentono e negano diritti restano separate, mentre le regole compatibili dello stesso tipo viene unita.

using System;
using Microsoft.Win32;
using System.Security.AccessControl;
using System.Security.Principal;

public class Example
{
    public static void Main()
    {
        // Create a string representing the current user.
        string user = Environment.UserDomainName + "\\"
            + Environment.UserName;

        // Create a security object that grants no access.
        RegistrySecurity mSec = new RegistrySecurity();

        // Add a rule that grants the current user the 
        // right to read the key.
        RegistryAccessRule rule = new RegistryAccessRule(user, 
            RegistryRights.ReadKey, 
            AccessControlType.Allow);
        mSec.AddAccessRule(rule);

        // Add a rule that denies the current user the 
        // right to change permissions on the Registry.
        rule = new RegistryAccessRule(user, 
            RegistryRights.ChangePermissions, 
            AccessControlType.Deny);
        mSec.AddAccessRule(rule);

        // Display the rules in the security object.
        ShowSecurity(mSec);

        // Add a rule that allows the current user the 
        // right to read permissions on the Registry. This 
        // rule is merged with the existing Allow rule.
        rule = new RegistryAccessRule(user, 
            RegistryRights.WriteKey, 
            AccessControlType.Allow);
        mSec.AddAccessRule(rule);

        ShowSecurity(mSec);
    }

    private static void ShowSecurity(RegistrySecurity security)
    {
        Console.WriteLine("\r\nCurrent access rules:\r\n");

        foreach( RegistryAccessRule ar in 
            security.GetAccessRules(true, true, typeof(NTAccount)) )
        {
            Console.WriteLine("        User: {0}", ar.IdentityReference);
            Console.WriteLine("        Type: {0}", ar.AccessControlType);
            Console.WriteLine("      Rights: {0}", ar.RegistryRights);
            Console.WriteLine();
        }
    }
}

/* This code example produces output similar to following:

Current access rules:

        User: TestDomain\TestUser
        Type: Deny
      Rights: ChangePermissions

        User: TestDomain\TestUser
        Type: Allow
      Rights: ReadKey


Current access rules:

        User: TestDomain\TestUser
        Type: Deny
      Rights: ChangePermissions

        User: TestDomain\TestUser
        Type: Allow
      Rights: SetValue, CreateSubKey, ReadKey
 */

.NET Framework
Disponibile da 2.0
Torna all'inizio
Mostra: