Create and manage platform users.
Reference → Modules → Security → UI → RuntimeUsers | Users | Permissions | Policies | Secrets | Monitor
Security Users (Reference) manages user accounts, authentication, and access control throughout the solution. A SecurityUser defines:
The system includes pre-defined users and supports enterprise authentication methods.
Three system users are configured by default:
| User | Purpose | Default Password | Notes |
|---|---|---|---|
| Administrator | System control and security management | None | Set password immediately |
| Guest | Anonymous access and default logout | None | Cannot add password |
| User | Generic authenticated access | None | Template for new users |
Do not delete or modify the row IDs of these built-in users. Do not create duplicate users with these names.
| Property | Description | Required |
|---|---|---|
| Name | Unique username for login | Yes |
| Permissions | Permission groups (comma-separated) | Yes |
| Password | Encrypted user password | No |
| PasswordHint | Password recovery hint | No |
| Policy | Security policy assignment | No |
| Deleted | Soft delete flag | No |
| Alias | Alternative identifier | No |
| Company | Organization association | No |
| UserGroup | Department/group assignment | No |
| Attributes | Custom user properties | No |
| Level | Hierarchical access level (0-255) | No |
| Category | User classification | No |
| LockState | Account lock status | Auto |
| ContactInfo | Email, phone, details | No |
The Guest user provides anonymous access:
Configure Guest permissions carefully to secure anonymous access.
Exclusive Administrator capabilities:
Three methods for removing access:
| Method | Effect | Use Case | Reversible |
|---|---|---|---|
| Block | Prevents login | Temporary suspension | Yes |
| Flag Deleted | Blocks + marks deleted | Audit trail preservation | Yes |
| Delete | Permanent removal | Complete cleanup | No |
csharp
// Set password programmatically
@Security.SetPassword("username", "newPassword");
// Force password change
@Security.Users["username"].MustChangePassword = true;
// Check password expiration
if (@Security.Users["username"].PasswordExpired)
{
// Prompt for new password
}Form-Based Login:
csharp
bool success = @Security.Login(username, password);
if (success)
{
@Info.Trace("User logged in: " + @Client.UserName);
}Windows Authentication:
csharp
@Security.UseWindowsAuthentication = true;
string windowsUser = @Client.WindowsUserName;External Authentication:
csharp
// LDAP/Active Directory
@Security.AuthenticationMode = "LDAP";
@Security.LDAPServer = "domain.local";Users inherit permissions from assigned groups:
User: John
Permissions: Operator, Maintenance
Result: Combined permissions from both groupsSee [Security Permissions] for group configuration.
Policies enforce password and session rules:
User: Mary
Policy: Enhanced
Result: Strong password, 90-day expiration, session timeoutSee [Security Policies] for policy configuration.
csharp
// Current user info
string currentUser = @Client.UserName;
string permissions = @Client.Permissions;
int level = @Client.Level;
// Check specific permission
bool canEdit = @Security.HasPermission("EditDisplays");
// User session
DateTime loginTime = @Client.LoginTime;
string ipAddress = @Client.IPAddress;csharp
// Get user details
var user = @Security.Users["username"];
string company = user.Company;
string group = user.UserGroup;
// Modify user
user.ContactInfo = "john@example.com";
user.Level = 50;Cannot login:
Password issues:
Permission denied:
Account locked: