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 |
<ac:structured-macro ac:name="warning"> ac:rich-text-body Do not delete or modify the row IDs of these built-in users. Do not create duplicate users with these names. </ac:rich-text-body> </ac:structured-macro>
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 groups
See [Security Permissions] for group configuration.
Policies enforce password and session rules:
User: Mary
Policy: Enhanced
Result: Strong password, 90-day expiration, session timeout
See [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: