Connectivity Software User's Guide and Reference
UserIdentityTokenTypes Enumeration
Example Example 



OpcLabs.BaseLibPrimitives Assembly > OpcLabs.BaseLib.Security.User Namespace : UserIdentityTokenTypes Enumeration
Specifies the types of user identity tokens (as flags).
Syntax
'Declaration
 
<CLSCompliantAttribute(True)>
<ComVisibleAttribute(False)>
<DisplayName2Attribute("User Identity Token Types")>
<FlagsAttribute()>
Public Enum UserIdentityTokenTypes 
   Inherits System.Enum
'Usage
 
Dim instance As UserIdentityTokenTypes
[CLSCompliant(true)]
[ComVisible(false)]
[DisplayName2("User Identity Token Types")]
[Flags()]
public enum UserIdentityTokenTypes : System.Enum 
[CLSCompliant(true)]
[ComVisible(false)]
[DisplayName2("User Identity Token Types")]
[Flags()]
public enum class UserIdentityTokenTypes : public System.Enum 
Members
MemberValueDescription
All15All user identity token types.

The value of this enum member is 15.

Anonymous1Anonymous user identity token.

The value of this enum member is 1.

Certificate4X.509 certificate user identity token.

The value of this enum member is 4.

Issued8Issued token (such as Kerberos, SAML or JWT).

The value of this enum member is 8.

None0No user identity token type specified.

The value of this enum member is 0.

UserName2Username and password user identity token.

The value of this enum member is 2.

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.");
        }
    }
}
Inheritance Hierarchy

System.Object
   System.ValueType
      System.Enum
         OpcLabs.BaseLib.Security.User.UserIdentityTokenTypes

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