OPC Studio User's Guide and Reference
UACertificateAcceptancePolicy Class
Members  Example 



View with Navigation Tools
OpcLabs.EasyOpcUA Assembly > OpcLabs.EasyOpc.UA.Engine Namespace : UACertificateAcceptancePolicy Class
Contains parameters that determine which OPC UA certificates are accepted.
Object Model
UACertificateAcceptancePolicy ClassUACertificateAcceptancePolicy ClassUACertificateAcceptancePolicy ClassUACertificateAcceptancePolicy ClassStringCollection Class
Syntax
'Declaration
 
<ComDefaultInterfaceAttribute(OpcLabs.EasyOpc.UA.Engine.ComTypes._UACertificateAcceptancePolicy)>
<ComVisibleAttribute(True)>
<GuidAttribute("2CBA7587-F230-4655-88A8-D14C05F3E470")>
<TypeConverterAttribute(System.ComponentModel.ExpandableObjectConverter)>
<ValueControlAttribute("OpcLabs.EasyOpc.UA.Forms.Implementation.UACertificateAcceptancePolicyControl, OpcLabs.EasyOpcForms, Version=5.81.455.1, Culture=neutral, PublicKeyToken=6faddca41dacb409")>
<CLSCompliantAttribute(True)>
<SerializableAttribute()>
Public NotInheritable Class UACertificateAcceptancePolicy 
   Inherits OpcLabs.BaseLib.Security.CertificateAcceptancePolicy
   Implements LINQPad.ICustomMemberProvider, OpcLabs.BaseLib.ComTypes._Info, OpcLabs.BaseLib.ComTypes._Object2, OpcLabs.BaseLib.ComTypes._Parameters, OpcLabs.BaseLib.Security.ComTypes._CertificateAcceptancePolicy, OpcLabs.EasyOpc.UA.Engine.ComTypes._UACertificateAcceptancePolicy, System.ICloneable, System.Runtime.Serialization.ISerializable, System.Xml.Serialization.IXmlSerializable 
 
'Usage
 
Dim instance As UACertificateAcceptancePolicy
Remarks

In an OPC UA client application, in order to obtain or modify these parameters for server instance certificates, access the UAClientServerEngineParameters.CertificateAcceptancePolicy property of EasyUAClientSharedParameters.EngineParameters property of OpcLabs.EasyOpc.UA.EasyUAClientCore.SharedParameters.

Alternatively, in an OPC UA client application, you can override the certificate acceptance policy for a specific endpoint by setting it to a non-null value in OpcLabs.EasyOpc.UA.UAEndpointDescriptor.CertificateAcceptancePolicy.

In order to obtain or modify these parameters for HTTPS certificates in an OPC UA client application, access the UAClientEngineParameters.HttpsCertificateAcceptancePolicy property of EasyUAClientSharedParameters.EngineParameters property of OpcLabs.EasyOpc.UA.EasyUAClientCore.SharedParameters.

Example
// This example shows how in a console application, the user is asked to accept a server instance certificate.
//
// Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html .
// OPC client and subscriber examples in C# on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-CSharp .
// Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own
// a commercial license in order to use Online Forums, and we reply to every post.

using System;
using OpcLabs.EasyOpc.UA;
using OpcLabs.EasyOpc.UA.Engine;
using OpcLabs.EasyOpc.UA.OperationModel;

namespace UADocExamples.Interaction
{
    partial class AcceptCertificate
    {
        public static void Instance()
        {
            // Do not implicitly trust any endpoint URLs. We want the user be asked explicitly.
            EasyUAClient.SharedParameters.EngineParameters.CertificateAcceptancePolicy.TrustedEndpointUrlStrings.Clear();

            // Define which server we will work with.
            UAEndpointDescriptor endpointDescriptor = "opc.tcp://opcua.demo-this.com:51210/UA/SampleServer";
            // Require secure connection, in order to enforce the certificate check.
            endpointDescriptor.EndpointSelectionPolicy = UAMessageSecurityModes.Secure;
            
            // Instantiate the client object.
            var client = new EasyUAClient();

            UAAttributeData attributeData;
            try
            {
                // Obtain attribute data.
                // The component automatically triggers the necessary user interaction during the first operation.
                attributeData = client.Read(endpointDescriptor, "nsu=http://test.org/UA/Data/ ;i=10853");
            }
            catch (UAException uaException)
            {
                Console.WriteLine("*** Failure: {0}", uaException.GetBaseException().Message);
                return;
            }

            // Display results.
            Console.WriteLine("Value: {0}", attributeData.Value);
            Console.WriteLine("ServerTimestamp: {0}", attributeData.ServerTimestamp);
            Console.WriteLine("SourceTimestamp: {0}", attributeData.SourceTimestamp);
            Console.WriteLine("StatusCode: {0}", attributeData.StatusCode);
        }
    }
}
Inheritance Hierarchy

System.Object
   OpcLabs.BaseLib.Object2
      OpcLabs.BaseLib.Info
         OpcLabs.BaseLib.Parameters
            OpcLabs.BaseLib.Security.CertificateAcceptancePolicy
               OpcLabs.EasyOpc.UA.Engine.UACertificateAcceptancePolicy

Requirements

Target Platforms: .NET Framework: Windows 10 (selected versions), Windows 11 (selected versions), Windows Server 2016, Windows Server 2022; .NET: Linux, macOS, Microsoft Windows

See Also