# OpcAnonymousAcl Members

> Reference: Represents the access control list of an OpcServerSecurity which authenticates anonymous identity tokens.

<dl class="api-definition">
<dt>Type</dt>
<dd><a href="./">OpcAnonymousAcl</a></dd>
<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>
</dl>

Inherits members from [OpcAccessControlList](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrollist/members).

## Constructors

### OpcAnonymousAcl

<span class="api-meta">since v2.6</span>

Initializes a new instance of the [OpcAnonymousAcl](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcanonymousacl/) class using the `owner` specified.

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

```csharp
public OpcAnonymousAcl(OpcServerBase owner)
```

</div>

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

```vbnet
Public Sub New(owner As OpcServerBase)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `owner` | [OpcServerBase](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcserverbase/) | The [OpcServerBase](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcserverbase/) the list belongs to. |

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception) | The `owner` is a null reference (Nothing in Visual Basic). |

**Remarks**

The entries created by the list evaluate operations and endpoints using the mode [Whitelist](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrolmode/#whitelist).

## Properties

### IsConfigured

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

Gets a value indicating whether anonymous access is configured.

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

```csharp
public override bool IsConfigured { get; }
```

</div>

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

```vbnet
Public Overrides ReadOnly Property IsConfigured As Boolean
```

</div>

**Property value**

[Boolean](https://learn.microsoft.com/dotnet/api/system.boolean)

The value true if the user token policies of the [Configuration](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcserverbase/members#configuration) contain an anonymous policy, or if they contain no policy at all and no other access control list is enabled; otherwise the value false.

**Overrides**

[IsConfigured](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrollist/members#isconfigured)

**Remarks**

Since the value depends on the other access control lists, enabling one of them disables anonymous access, as long as [IsEnabled](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrollist/members#isenabled) of this list has not been set explicitly. While the server runs, the value follows the configuration it has been started with, see [IsConfigured](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrollist/members#isconfigured).

### TokenType

<span class="api-meta">protected · override · since v2.42</span>

Gets the type of the identity tokens the list is responsible for.

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

```csharp
protected override OpcAccessControlTokenType TokenType { get; }
```

</div>

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

```vbnet
Protected Overrides ReadOnly Property TokenType As OpcAccessControlTokenType
```

</div>

**Property value**

[OpcAccessControlTokenType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontroltokentype/)

Always [Anonymous](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontroltokentype/#anonymous).

**Overrides**

[TokenType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrollist/members#tokentype)

## Methods

### Authenticate

<span class="api-meta">override · since v2.42</span>

Authenticates the `identityToken` specified if it is an anonymous identity token.

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

```csharp
public override OpcPrincipal Authenticate(OpcIdentityToken identityToken)
```

</div>

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

```vbnet
Public Overrides Function Authenticate(
    identityToken As OpcIdentityToken) As OpcPrincipal
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `identityToken` | [OpcIdentityToken](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcidentitytoken/) | The [OpcIdentityToken](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcidentitytoken/) to authenticate. |

**Returns**

[OpcPrincipal](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcprincipal/)

The [OpcPrincipal](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcprincipal/) of the anonymous identity if the `identityToken` is an [OpcAnonymousIdentityToken](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcanonymousidentitytoken/); otherwise a null reference (Nothing in Visual Basic).

**Overrides**

[Authenticate](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrollist/members#authenticate)

**Remarks**

All anonymous identity tokens are authenticated as the same principal, which is created by the first call and assigned to the role [Anonymous](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcserversecurityroles/members#anonymous).
