---
title: Configuration settings
summary: Configuration keys consumed by this library, retrieval methods, and runtime dependencies.
status: draft
owner: SAIF
last_reviewed: 2026-07-24
library: SAIF.Business.Security.SystemUser
reference_type: package
---

# Configuration settings

`SAIF.Business.Security.SystemUser` reads runtime configuration only from legacy XML property files through `clsProperties`. The library consumes elevated Active Directory bind credentials from `PROPERTIES.XML` and reads an agreement-check flag plus special-user values from `OnlineProperties.xml`; the credential-bearing XML nodes are security-sensitive because they directly supply authentication inputs to directory-service flows.

## Configuration retrieval methods

| Method | Class / Interface | Namespace | Usage pattern |
| --- | --- | --- | --- |
| `New clsProperties(inPropertiesFileName, inPropertiesFilePath)` + `getAppProperties("ONLINE")` | `clsProperties` | Global (no namespace declaration) | The constructor overload reads the `ONLINE` node from a caller-supplied XML file path, then extracts `SECURITY/USERID` and `SECURITY/PASSWORD` before calling `Initialize(...)`. |
| `clsProperties.XMLPath()` + `New clsProperties("OnlineProperties.xml", checkPath)` + `getAppProperties("CHECK_FOR_USER_AGREEMENTS")` | `clsProperties` | Global (no namespace declaration) | `CheckOnlineSecurityAgreements()` asks the legacy helper for the XML directory, loads `OnlineProperties.xml`, and reads the agreement flag node. |
| `GetPropFilePath()` + `New clsProperties("OnlineProperties.xml", xmlPath)` + `getAppProperties("SPECIAL_USERS/PAYROLL_REPORTING_ONLY")` | `clsProperties` plus local helper | Global (no namespace declaration) | `GetSpecialUserInfo()` resolves the XML directory from `APPL_PHYSICAL_PATH`, loads `OnlineProperties.xml`, and reads the payroll-reporting-only special-user node. |

## XML properties files

| File | XML path / key | Consumer | Retrieval method | Runtime path resolution | Purpose |
| --- | --- | --- | --- | --- | --- |
| `PROPERTIES.XML` | `ONLINE/SECURITY/USERID` | `clsSystemUser.New(ByVal inPropertiesFileName As String, ByVal inPropertiesFilePath As String, ByVal inSecurityPrincipal As clsSecurityPrincipal)` | `properties.getAppProperties("ONLINE")` + `SelectSingleNode("SECURITY/USERID")` | The caller supplies `inPropertiesFileName` and `inPropertiesFilePath`. | Elevated directory-bind user passed into `Initialize(...)`. |
| `PROPERTIES.XML` | `ONLINE/SECURITY/PASSWORD` | `clsSystemUser.New(ByVal inPropertiesFileName As String, ByVal inPropertiesFilePath As String, ByVal inSecurityPrincipal As clsSecurityPrincipal)` | `properties.getAppProperties("ONLINE")` + `SelectSingleNode("SECURITY/PASSWORD")` | The caller supplies `inPropertiesFileName` and `inPropertiesFilePath`. | Elevated directory-bind password passed into `Initialize(...)`. |
| `OnlineProperties.xml` | `CHECK_FOR_USER_AGREEMENTS` | `clsSystemUser.CheckOnlineSecurityAgreements()` | `props.XMLPath()` + `props.getAppProperties("CHECK_FOR_USER_AGREEMENTS")` | `clsProperties.XMLPath()` derives the XML directory from `HttpContext.Current.Request.ServerVariables("APPL_PHYSICAL_PATH")`. | Controls whether online security agreements are checked. |
| `OnlineProperties.xml` | `SPECIAL_USERS/PAYROLL_REPORTING_ONLY/NAME` | `clsSystemUser.GetSpecialUserInfo(ByRef specialUserName As String, ByRef specialUserId As String, ByVal utype As specialUserType)` | `GetPropFilePath()` + `props.getAppProperties("SPECIAL_USERS/PAYROLL_REPORTING_ONLY")` + `.Item("NAME")` | `GetPropFilePath()` walks from the current web application's physical path to the sibling `XML` directory. | Returns the payroll-reporting-only special-user name to the caller. |
| `OnlineProperties.xml` | `SPECIAL_USERS/PAYROLL_REPORTING_ONLY/ID` | `clsSystemUser.GetSpecialUserInfo(ByRef specialUserName As String, ByRef specialUserId As String, ByVal utype As specialUserType)` | `GetPropFilePath()` + `props.getAppProperties("SPECIAL_USERS/PAYROLL_REPORTING_ONLY")` + `.Item("ID")` | `GetPropFilePath()` walks from the current web application's physical path to the sibling `XML` directory. | Returns the payroll-reporting-only special-user ID to the caller. |

## Environment API settings

No `IEnvironmentService` usage was identified in this library.

## AppSettings (Web.config)

No `ConfigurationManager.AppSettings` usage or `<appSettings>` entries were identified. `App.config` only registers the Oracle managed provider and assembly binding redirects.

## Database connection configuration

No connection strings or `DbConnectionManager` usage were identified in the analyzed source.

## Secure settings

| Setting key | Encryption method | Purpose | Consuming class | Source |
| --- | --- | --- | --- | --- |
| `ONLINE/SECURITY/USERID` | Plain XML node read via `clsProperties` | Supplies the elevated Active Directory bind user used during `clsSystemUser` initialization. | `clsSystemUser` | `Business\SAIF.Business.Security.SystemUser\clsSystemUser.vb` |
| `ONLINE/SECURITY/PASSWORD` | Plain XML node read via `clsProperties` | Supplies the elevated Active Directory bind password used during `clsSystemUser` initialization. | `clsSystemUser` | `Business\SAIF.Business.Security.SystemUser\clsSystemUser.vb` |
| `SPECIAL_USERS/PAYROLL_REPORTING_ONLY/NAME` | Plain XML node read via `clsProperties` | Returns a security-sensitive payroll-reporting-only special-user name for authentication flows. | `clsSystemUser` | `Business\SAIF.Business.Security.SystemUser\clsSystemUser.vb` |
| `SPECIAL_USERS/PAYROLL_REPORTING_ONLY/ID` | Plain XML node read via `clsProperties` | Returns a security-sensitive payroll-reporting-only special-user ID for authentication flows. | `clsSystemUser` | `Business\SAIF.Business.Security.SystemUser\clsSystemUser.vb` |

## Transitive configuration (from dependencies)

No additional transitive settings were identified beyond the legacy `clsProperties` XML helper used directly by this library.

## Configuration dependencies

| Dependency | Type | Required at | Impact if missing |
| --- | --- | --- | --- |
| `PROPERTIES.XML` | XML file | Construction time | The constructor overload that accepts a properties file cannot retrieve elevated bind credentials and throws `ApplicationException("Error while retrieving security user from properties.", ex)`. |
| `OnlineProperties.xml` | XML file | Runtime | Agreement-check and special-user lookups cannot return configured values; `CheckOnlineSecurityAgreements()` and `GetSpecialUserInfo()` fall back to their built-in return paths. |
| `HttpContext.Current.Request.ServerVariables("APPL_PHYSICAL_PATH")` | ASP.NET request context | Runtime | `GetPropFilePath()` and `clsProperties.XMLPath()` cannot resolve the XML directory used for `OnlineProperties.xml` lookups. |

## Related documentation
- [Index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Dependencies](dependencies.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [Security and authorization](security-authorization.md)
- [API reference](api/index.md)

## Sources
- `Business\SAIF.Business.Security.SystemUser\App.config`
- `Business\SAIF.Business.Security.SystemUser\clsSystemUser.vb`
- `Legacy\SAIFProperties\clsProperties.vb`
