Skip to main content
net10.0net11.0.NETFramework4.6.2.NETStandard2.0

Provides support for managing access and audit control lists for Microsoft.Win32.RegistryKey. Commonly Used Types: System.Security.AccessControl.RegistryAccessRule System.Security.AccessControl.RegistryAuditRule System.Security.AccessControl.RegistrySecurity

Published
Oct 13, 2026
9d ago
Total Downloads
102.8M
102,752,730

Install

dotnet add package Microsoft.Win32.Registry.AccessControl --version 11.0.0-rc.2.26504.105
ProductVersions
.NET
net10.0net11.0
.NET Standard
netstandard2.0
Other
.NETFramework4.6.2

README

About

Provides support for managing access control lists for Microsoft.Win32.RegistryKey.

Key Features

  • Get access control lists for a registry key.
  • Get a specific sections of an access control list.
  • Set the access control list for a registry key.

How to Use

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

// Open a registry key (or create it if it doesn't exist)
using RegistryKey registryKey = Registry.CurrentUser.CreateSubKey("TestKey");
if (registryKey == null)
{
    Console.WriteLine("Failed to create or open the registry key.");
    return;
}

// Get the current access control list (ACL) for the registry key
RegistrySecurity registrySecurity = registryKey.GetAccessControl();
Console.WriteLine("Current Access Control List (ACL):");
Console.WriteLine(registrySecurity.GetSecurityDescriptorSddlForm(AccessControlSections.Access));

// Create a new access rule granting full control to the current user
string currentUser = Environment.UserName;
RegistryAccessRule accessRule = new RegistryAccessRule(currentUser, RegistryRights.FullControl, InheritanceFlags.None, PropagationFlags.None, AccessControlType.Allow);

// Add the new access rule to the ACL
registrySecurity.AddAccessRule(accessRule);

// Set the updated ACL on the registry key
registryKey.SetAccessControl(registrySecurity);

// Get and display the updated ACL for the registry key using the second GetAccessControl overload
RegistrySecurity updatedRegistrySecurity = registryKey.GetAccessControl(AccessControlSections.Access);
Console.WriteLine("Updated Access Control List (ACL):");
Console.WriteLine(updatedRegistrySecurity.GetSecurityDescriptorSddlForm(AccessControlSections.Access));

Main Types

The main type provided by this library is:

  • Microsoft.Win32.RegistryAclExtensions

Additional Documentation

Feedback & Contributing

Microsoft.Win32.Registry.AccessControl is released as open source under the MIT license. Bug reports and contributions are welcome at the GitHub repository.

Changes from Previous Version

No structural changes between v11.0.0-rc.1.26425.128 and v11.0.0-rc.2.26504.105.

Adoption Assessment

A verified publisher signal is available. Assess fit from the package's supported frameworks, license and dependency graph rather than popularity alone.

This version is marked prerelease. Validate its API and upgrade path before production use.Compatibility metadata lists 4 target frameworks; confirm the exact target used by your application.

Related Guides & Workflows

Learn how to evaluate, integrate, or audit this package in your .NET project.