# API Changes in v2.42

> Reference: API changes of Opc.UaFx.Advanced in v2.42: 16 added, 0 removed, 12 changed, 0 obsoleted.

<dl class="api-definition">
<dt>Releases</dt>
<dd>v2.42.0, v2.42.0.1, v2.42.1, v2.42.2, v2.42.3, v2.42.4, v2.42.5</dd>
<dt>Compared with</dt>
<dd>v2.41.1</dd>
<dt>Package</dt>
<dd>Opc.UaFx.Advanced</dd>
</dl>

## Added

### Opc.UaFx

| Symbol | Signature |
|---|---|
| [ILicenseInfo.IsSubscription](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.ilicenseinfo/members#issubscription) | `bool IsSubscription { get; }` |
| [OpcAnonymousIdentityToken](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcanonymousidentitytoken/)<span class="api-meta">1 member</span> | `public class OpcAnonymousIdentityToken : OpcIdentityToken` |
| [OpcAutomatism.UseNullInsteadOfEmptyArrays](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcautomatism/members#usenullinsteadofemptyarrays) | `public static bool UseNullInsteadOfEmptyArrays { get; set; }` |
| [OpcCertificateIdentityToken](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opccertificateidentitytoken/)<span class="api-meta">2 members</span> | `public class OpcCertificateIdentityToken : OpcIdentityToken` |
| [OpcIdentityToken](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcidentitytoken/)<span class="api-meta">1 member</span> | `public abstract class OpcIdentityToken` |
| [OpcIssuedIdentityToken](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcissuedidentitytoken/)<span class="api-meta">2 members</span> | `public class OpcIssuedIdentityToken : OpcIdentityToken` |
| [OpcUserIdentity](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcuseridentity/members#opcuseridentity-opc-ua-useridentitytoken) | `protected OpcUserIdentity(UserIdentityToken token)` |
| [OpcUserNameIdentityToken](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcusernameidentitytoken/)<span class="api-meta">3 members</span> | `public class OpcUserNameIdentityToken : OpcIdentityToken` |

### Opc.UaFx.Server

| Symbol | Signature |
|---|---|
| [OpcAccessControlList.TokenType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrollist/members#tokentype) | `protected abstract OpcAccessControlTokenType TokenType { get; }` |
| [OpcAccessControlTokenType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontroltokentype/)<span class="api-meta">4 members</span> | `public enum OpcAccessControlTokenType` |
| [OpcAnonymousAcl.TokenType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcanonymousacl/members#tokentype) | `protected override OpcAccessControlTokenType TokenType { get; }` |
| [OpcCertificateAcl.TokenType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opccertificateacl/members#tokentype) | `protected override OpcAccessControlTokenType TokenType { get; }` |
| [OpcIssuedTokenAcl.TokenType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcissuedtokenacl/members#tokentype) | `protected override OpcAccessControlTokenType TokenType { get; }` |
| [OpcServerSecurity.AddAccessControlList](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcserversecurity/members#addaccesscontrollist) | `public void AddAccessControlList(OpcAccessControlList accessControlList)` |
| [OpcServerSecurity.RemoveAccessControlList](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcserversecurity/members#removeaccesscontrollist) | `public bool RemoveAccessControlList(OpcAccessControlList accessControlList)` |
| [OpcUserNameAcl.TokenType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcusernameacl/members#tokentype) | `protected override OpcAccessControlTokenType TokenType { get; }` |

## Changed

### Opc.UaFx.Server

| Symbol | Signature (old, new) |
|---|---|
| [OpcAccessControlList.Authenticate](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrollist/members#authenticate) | `public abstract OpcPrincipal Authenticate(object identityToken)`<br>`public abstract OpcPrincipal Authenticate(OpcIdentityToken identityToken)` |
| [OpcAccessControlList.IsEndpointDisabled](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrollist/members#isendpointdisabled-opc-uafx-server-opcprincipal-opc-uafx-opcendpointidentity) | `public bool IsEndpointDisabled(OpcPrincipal principal, OpcEndpointIdentity endpoint)`<br>`public virtual bool IsEndpointDisabled(OpcPrincipal principal, OpcEndpointIdentity endpoint)` |
| [OpcAccessControlList.IsEndpointDisabled](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrollist/members#isendpointdisabled-opc-uafx-server-opcprincipal) | `public bool IsEndpointDisabled(OpcPrincipal principal)`<br>`public virtual bool IsEndpointDisabled(OpcPrincipal principal)` |
| [OpcAccessControlList.IsEndpointEnabled](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrollist/members#isendpointenabled-opc-uafx-server-opcprincipal-opc-uafx-opcendpointidentity) | `public bool IsEndpointEnabled(OpcPrincipal principal, OpcEndpointIdentity endpoint)`<br>`public virtual bool IsEndpointEnabled(OpcPrincipal principal, OpcEndpointIdentity endpoint)` |
| [OpcAccessControlList.IsEndpointEnabled](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrollist/members#isendpointenabled-opc-uafx-server-opcprincipal) | `public bool IsEndpointEnabled(OpcPrincipal principal)`<br>`public virtual bool IsEndpointEnabled(OpcPrincipal principal)` |
| [OpcAccessControlList.IsOperationAllowed](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrollist/members#isoperationallowed) | `public bool IsOperationAllowed(OpcPrincipal principal, OpcOperationType operation)`<br>`public virtual bool IsOperationAllowed(OpcPrincipal principal, OpcOperationType operation)` |
| [OpcAccessControlList.IsOperationDenied](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcaccesscontrollist/members#isoperationdenied) | `public bool IsOperationDenied(OpcPrincipal principal, OpcOperationType operation)`<br>`public virtual bool IsOperationDenied(OpcPrincipal principal, OpcOperationType operation)` |
| [OpcAnonymousAcl.Authenticate](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcanonymousacl/members#authenticate) | `public override OpcPrincipal Authenticate(object identityToken)`<br>`public override OpcPrincipal Authenticate(OpcIdentityToken identityToken)` |
| [OpcCertificateAcl.Authenticate](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opccertificateacl/members#authenticate) | `public override OpcPrincipal Authenticate(object identityToken)`<br>`public override OpcPrincipal Authenticate(OpcIdentityToken identityToken)` |
| [OpcIssuedTokenAcl.Authenticate](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcissuedtokenacl/members#authenticate) | `public override OpcPrincipal Authenticate(object identityToken)`<br>`public override OpcPrincipal Authenticate(OpcIdentityToken identityToken)` |
| [OpcServerSecurity.Authenticate](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcserversecurity/members#authenticate-opc-uafx-opcidentitytoken) | `public OpcPrincipal Authenticate(object identityToken)`<br>`public OpcPrincipal Authenticate(OpcIdentityToken identityToken)` |
| [OpcUserNameAcl.Authenticate](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcusernameacl/members#authenticate) | `public override OpcPrincipal Authenticate(object identityToken)`<br>`public override OpcPrincipal Authenticate(OpcIdentityToken identityToken)` |
