Connectivity Software User's Guide and Reference
UserIdentityTokenTypes Property (IEasyUAServer)
Example 



OpcLabs.ServerOpcUA Assembly > OpcLabs.EasyOpc.UA Namespace > IEasyUAServer Interface : UserIdentityTokenTypes Property
Gets or sets the user identity token types that the server exposes and that clients can use for authentication.
Syntax
'Declaration
 
Property UserIdentityTokenTypes As UserIdentityTokenTypes
'Usage
 
Dim instance As IEasyUAServer
Dim value As UserIdentityTokenTypes
 
instance.UserIdentityTokenTypes = value
 
value = instance.UserIdentityTokenTypes
UserIdentityTokenTypes UserIdentityTokenTypes {get; set;}
property UserIdentityTokenTypes UserIdentityTokenTypes {
   UserIdentityTokenTypes get();
   void set (    UserIdentityTokenTypes value);
}

Property Value

A flags enumeration of OpcLabs.BaseLib.Security.User.UserIdentityTokenTypes specifying which authentication methods are available.
Exceptions
ExceptionDescription

An invalid enumeration value was used.

This is a usage error, i.e. it will never occur (the exception will not be thrown) in a correctly written program. Your code should not catch this exception.

Remarks

This property controls which authentication mechanisms the server will accept from connecting clients. The value is a combination of flags that can include anonymous access, username/password authentication, X.509 certificate authentication, and issued tokens.

Example values:

Example
// This example shows how to allow only anonymous access to the OPC UA server.
// You can use any OPC UA client, including our Connectivity Explorer and OpcCmd utility, to connect to the server. 
//
// Find all latest examples here: https://www.doc-that.com/files/onlinedocs/OPCLabs-ConnectivityStudio/Latest/examples.html .
// OPC client, server and subscriber examples in C# on GitHub: https://github.com/OPCLabs/Examples-ConnectivityStudio-CSharp .
// Missing some example? Ask us for it on our Online Forums, https://forum.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 OpcLabs.EasyOpc.UA;
using OpcLabs.EasyOpc.UA.NodeSpace;
using System;
using OpcLabs.BaseLib.Security.User;

namespace UAServerDocExamples.AccessControl
{
    internal partial class UserIdentityTokens
    {
        public static void AnonymousOnly()
        {
            // Instantiate the server object.
            // By default, the server will run on endpoint URL "opc.tcp://localhost:48040/".
            var server = new EasyUAServer();

            // By default, the server allows all user identity token types. In this example, we will allow only anonymous
            // access. Use this setting if your server does not need support for identifying authenticating its users.
            server.UserIdentityTokenTypes = UserIdentityTokenTypes.Anonymous;

            // Define a data variable providing random integers.
            var random = new Random();
            server.Add(new UADataVariable("MyDataVariable").ReadValueFunction(() => random.Next()));

            // Start the server.
            Console.WriteLine("The server is starting...");
            server.Start();

            Console.WriteLine("The server is started.");
            Console.WriteLine();

            // Let the user decide when to stop.
            Console.WriteLine("Press Enter to stop the server...");
            Console.ReadLine();

            // Stop the server.
            Console.WriteLine("The server is stopping...");
            server.Stop();

            Console.WriteLine("The server is stopped.");
        }
    }
}
// This example shows how to allow only authenticated access to the OPC server, with username & password. It also shows how
// to create a user and assign it an initial password.
// You can use any OPC UA client, including our Connectivity Explorer and OpcCmd utility, to connect to the server. 
//
// Find all latest examples here: https://www.doc-that.com/files/onlinedocs/OPCLabs-ConnectivityStudio/Latest/examples.html .
// OPC client, server and subscriber examples in C# on GitHub: https://github.com/OPCLabs/Examples-ConnectivityStudio-CSharp .
// Missing some example? Ask us for it on our Online Forums, https://forum.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 OpcLabs.EasyOpc.UA;
using OpcLabs.EasyOpc.UA.NodeSpace;
using System;
using OpcLabs.BaseLib.Security.User;
using OpcLabs.BaseLib.Security.User.Extensions;

namespace UAServerDocExamples.AccessControl
{
    internal partial class UserIdentityTokens
    {
        public static void UserNameOnly()
        {
            // Instantiate the server object.
            // By default, the server will run on endpoint URL "opc.tcp://localhost:48040/".
            var server = new EasyUAServer();

            // By default, the server allows all user identity token types. In this example, we will allow only username &
            // password user identity tokens.
            server.UserIdentityTokenTypes = UserIdentityTokenTypes.UserName;

            // Create a user with username "user1" and password "pass". Without specifying security role IDs, the user
            // session will be assigned implicit Anonymous, AuthenticatedUser and possibly TrustedApplication roles.
            server.UserManagers.NameAndPassword.Create("user1", "pass");

            // Define a data variable providing random integers.
            var random = new Random();
            server.Add(new UADataVariable("MyDataVariable").ReadValueFunction(() => random.Next()));

            // Start the server.
            Console.WriteLine("The server is starting...");
            server.Start();

            Console.WriteLine("The server is started.");
            Console.WriteLine();

            // Let the user decide when to stop.
            Console.WriteLine("Press Enter to stop the server...");
            Console.ReadLine();

            // Stop the server.
            Console.WriteLine("The server is stopping...");
            server.Stop();

            Console.WriteLine("The server is stopped.");
        }
    }
}
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