# OpcAccessControlList Class

> Reference: Provides the abstract base class of the access control lists of an OpcServerSecurity, which authenticate the identity tokens of one OpcAccessControlTokenType and maintain one OpcAccessControlEntry per OpcPrincipal.

<span class="api-meta">abstract</span>

<dl class="api-definition">
<dt>Namespace</dt>
<dd><a href="../namespaces/opc.uafx.server">Opc.UaFx.Server</a></dd>
<dt>Assembly</dt>
<dd>Opc.UaFx.Advanced.dll</dd>
<dt>Package</dt>
<dd>Opc.UaFx.Advanced v2.59.0</dd>
<dt>Members</dt>
<dd><a href="./members">OpcAccessControlList Members</a></dd>
</dl>

Provides the abstract base class of the access control lists of an [OpcServerSecurity](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcserversecurity/), which authenticate the identity tokens of one [OpcAccessControlTokenType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontroltokentype/) and maintain one [OpcAccessControlEntry](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrolentry/) per [OpcPrincipal](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcprincipal/).

## Syntax

<div class="api-signature" data-lang="csharp">

```csharp
public abstract class OpcAccessControlList
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public MustInherit Class OpcAccessControlList
```

</div>

## Inheritance

[Object](https://learn.microsoft.com/dotnet/api/system.object) → **OpcAccessControlList**

## Derived types

- [OpcAnonymousAcl](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcanonymousacl/)
- [OpcCertificateAcl](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opccertificateacl/)
- [OpcIssuedTokenAcl](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcissuedtokenacl/)
- [OpcUserNameAcl](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcusernameacl/)

## Constructors

| Name | Description |
|---|---|
| [OpcAccessControlList](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrollist/members#opcaccesscontrollist)<span class="api-meta">protected · since v2.6</span> | Initializes a new instance of the OpcAccessControlList class using the `owner`, `operationAccessMode` and `endpointAccessMode` specified. |

## Properties

| Name | Description |
|---|---|
| [EndpointAccessMode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrollist/members#endpointaccessmode) | Gets the mode which the entries created by the list use to evaluate an endpoint which has neither been enabled nor disabled explicitly. |
| [Entries](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrollist/members#entries) | Gets a read-only collection of the entries of the list. |
| [IsConfigured](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrollist/members#isconfigured)<span class="api-meta">virtual</span> | Gets a value indicating whether the [Configuration](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcserverbase/members#configuration) states a user token policy of the token type of the access control list. |
| [IsEnabled](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrollist/members#isenabled) | Gets or sets a value indicating whether the server offers the token type of the access control list and uses the list to authenticate and authorize its users. |
| [OperationAccessMode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrollist/members#operationaccessmode) | Gets the mode which the entries created by the list use to evaluate an operation which has neither been allowed nor denied explicitly. |
| [Owner](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrollist/members#owner)<span class="api-meta">protected</span> | Gets the server the list belongs to. |
| [TokenType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrollist/members#tokentype)<span class="api-meta">protected · abstract · since v2.42</span> | Gets the type of the identity tokens the list is responsible for. |

## Methods

| Name | Description |
|---|---|
| [AddEntry](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrollist/members#addentry)<span class="api-meta">3 overloads</span> | Adds an entry for the `principal` specified to the list. |
| [Allow](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrollist/members#allow) | Allows the `operation` specified explicitly for the `principal` specified. |
| [Authenticate](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrollist/members#authenticate)<span class="api-meta">abstract · since v2.42</span> | When overridden in a derived class, authenticates the `identityToken` specified. |
| [ConfigureCore](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrollist/members#configurecore)<span class="api-meta">protected · virtual</span> | When overridden in a derived class, applies the configuration of the [Owner](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrollist/members#owner) to the list. |
| [Deny](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrollist/members#deny) | Denies the `operation` specified explicitly for the `principal` specified. |
| [Disable](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrollist/members#disable) | Disables the `endpoint` specified explicitly for the `principal` specified. |
| [Enable](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrollist/members#enable) | Enables the `endpoint` specified explicitly for the `principal` specified. |
| [IsEndpointDisabled](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrollist/members#isendpointdisabled)<span class="api-meta">virtual · 2 overloads</span> | Determines whether the endpoint of the current secure channel is disabled for the `principal` specified. |
| [IsEndpointEnabled](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrollist/members#isendpointenabled)<span class="api-meta">virtual · 2 overloads</span> | Determines whether the endpoint of the current secure channel is enabled for the `principal` specified. |
| [IsOperationAllowed](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrollist/members#isoperationallowed)<span class="api-meta">virtual</span> | Determines whether the `operation` specified is allowed for the `principal` specified. |
| [IsOperationDenied](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrollist/members#isoperationdenied)<span class="api-meta">virtual</span> | Determines whether the `operation` specified is denied for the `principal` specified. |
| [RemoveEntry](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrollist/members#removeentry)<span class="api-meta">2 overloads</span> | Removes the `entry` specified from the list. |

## Applies to

| Package | Versions |
|---|---|
| Opc.UaFx.Advanced | v2.5–v2.59 |
