Configuration settings¶
SAIF.Presentation.Web.Core.Infragistics111 reads two runtime settings through two different mechanisms: the legacy SAIF mail SOAP endpoint URL is resolved from the framework environment service (AppGlobal.EnvironmentService.GetConfigSetting), and the Oracle environment name used for menu data access is read from the host application's <appSettings> via System.Configuration.ConfigurationManager.AppSettings.Get. The library ships no settings of its own — its app.config contains only an assembly binding redirect and its generated settings class declares no properties — so every value must be supplied by the consuming web application.
Configuration retrieval methods¶
| Method | Class / Interface | Namespace | Usage pattern |
|---|---|---|---|
GetConfigSetting(String) |
AppGlobal.EnvironmentService (framework environment service) |
SAIF.Framework.Security (package SAIF.BOF.Framework) |
Static access through the AppGlobal singleton; called with a string literal key immediately before assigning the SOAP proxy Url. |
ConfigurationManager.AppSettings.Get(String) |
System.Configuration.ConfigurationManager |
System.Configuration |
Fully-qualified inline call in the NavigationContext constructor; the result is passed straight into the Oracle data-layer constructor. |
IsClientExternal (property, not a keyed setting) |
AppGlobal.EnvironmentService |
SAIF.Framework.Security |
Read as a boolean environment classification to decide whether the session keep-alive script is emitted; it takes no key argument and is listed here only for completeness. |
No GetSecureConfigSetting, SystemHashUtil, DbConnectionManager, EnvironmentConfigKeys, WebConfigurationManager, or <connectionStrings> usage exists in this library.
Environment API settings¶
Settings retrieved via IEnvironmentService (centralized environment configuration service).
| Setting key | Method | Data type | Purpose | Consuming class | Source |
|---|---|---|---|---|---|
LegacyMailWebServiceUrl |
GetConfigSetting |
String | Absolute endpoint URL of the SAIFMail.clsSAIFMessage legacy SOAP mail service |
clsMailMessage (all six SendMail overloads) |
SAIF.Presentation.Web.Core.Infragistics111/clsMailMessage.vb (lines 99, 123, 148, 175, 202, 226) |
The key is a hard-coded string literal — no constant indirection to resolve. No null/empty guard surrounds the call; a missing setting produces an unusable proxy URL at send time.*
AppSettings (Web.config)¶
Settings retrieved via ConfigurationManager.AppSettings.
| Setting key | Default value | Purpose | Consuming class | Source |
|---|---|---|---|---|
MENU_ENVIRONMENT |
N/A — not declared in any config file in this repository; must be supplied by the hosting application | Names the Oracle environment/database instance used for menu data access | NavigationContext (constructor New(inUser As String)) |
SAIF.Presentation.Web.Core.Infragistics111/NavigationContext.vb (line 186) |
Accessed via System.Configuration.ConfigurationManager.AppSettings.Get("MENU_ENVIRONMENT") and passed as the second argument to New clsMSOracleDataLayer(m_DBUserName, …), where m_DBUserName is the hard-coded literal "MENU" (NavigationContext.vb line 11). The key is accessed in code but not declared in any app.config/Web.config in this repository — it is an injected/deploy-time setting. Get returns Nothing when the key is absent, and the value is used without a guard.*
Database connection configuration¶
Connection strings and database provider settings consumed by this library.
| Connection name | Provider | Retrieval method | Purpose | Source |
|---|---|---|---|---|
Menu authorization data layer (clsMSOracleDataLayer) |
Oracle (via SAIF.Framework clsMSOracleDataLayer) |
MENU_ENVIRONMENT (AppSettings) + hard-coded schema/user MENU |
Loads the user's authorized menu items (clsMenuAuthorizedItemCollection.GetMenuAuthorizedItems) that back all NavigationContext navigation and page-authorization answers |
SAIF.Presentation.Web.Core.Infragistics111/NavigationContext.vb (lines 11, 186) |
No DbConnectionManager call, no GetOracleConnectionString/GetSqlConnectionString call, and no <connectionStrings> entry appears in this library. The connection string itself is resolved inside clsMSOracleDataLayer from the environment name plus the user name; the credential material is not present in this repository.*
Secure settings¶
No secure configuration is retrieved by this library. There are no GetSecureConfigSetting calls and no SystemHashUtil.ComputeHash usage, even though SAIF.HashUtil is a package reference of the project.
Transitive configuration (from dependencies)¶
Settings required at runtime by referenced libraries or packages, not directly consumed by this library's code. Only two referenced projects consume configuration; the control libraries and SAIF.Business.Menu contain no configuration calls in live code.
| Setting key | Method | Source dependency | Dependency type | Purpose |
|---|---|---|---|---|
oracleDatabase† (EnvironmentConfigKeys.OracleDatabase) |
GetConfigSetting |
SAIF.Presentation | ProjectReference | clsPreferences.Load builds its Oracle data layer from this key; clsAppModelBase-derived models load user preferences. |
oracleDatabase† (EnvironmentConfigKeys.OracleDatabase) |
GetConfigSetting |
SAIF.Presentation.Web.MVC | ProjectReference | NavigationContext (MVC) menu authorization. |
netFrameworkSqlServer† (EnvironmentConfigKeys.NetFrameworkSqlServer) |
GetConfigSetting |
SAIF.Presentation.Web.MVC | ProjectReference | clsContext.clsContextRepository cross-application context persistence. |
policymanagement.supportemaillist |
GetConfigSetting |
SAIF.Presentation.Web.MVC | ProjectReference | clsControllerBase.HandleErrors error-notification distribution list — AppViewPageBase/clsAppControllerBase inherit this error path. |
ErrorPageName |
AppSettings |
SAIF.Presentation.Web.MVC | ProjectReference | Error-page redirect target used by the inherited error handler. |
TraceLogging, PageTraceOn, TraceUser |
AppSettings |
SAIF.Presentation.Web.MVC | ProjectReference | clsControllerBase.New trace-logging switches; every clsAppControllerBase instance runs this constructor. |
EXT_VIEWSTATE_SESSION |
AppSettings |
SAIF.Presentation.Web.MVC | ProjectReference | ViewPageBase.PageStatePersister; AppViewPageBase derives from ViewPageBase. |
SAIFTracingSwitch |
System.Diagnostics.TraceSwitch (<system.diagnostics><switches>) |
SAIF.Presentation.Web.MVC | ProjectReference | Trace level for the inherited controller base. |
† Constant values resolved from the SAIF.BOF.Framework package documentation (EnvironmentConfigKeys); the literals are not defined in this repository.
Configuration dependencies¶
| Dependency | Type | Required at | Impact if missing |
|---|---|---|---|
LegacyMailWebServiceUrl |
Environment service setting | Request (every SendMail call) |
SOAP proxy Url is unusable; mail send fails at the first attempt to use the proxy.* |
MENU_ENVIRONMENT |
AppSettings key | Request (NavigationContext construction) |
clsMSOracleDataLayer construction fails or behaves unpredictably with a Nothing environment name.* |
Host application web.config |
Configuration file | Startup/deploy | Both settings above are required with no in-repository default; missing entries surface at first use rather than at startup. |
Additional risks: MENU_ENVIRONMENT uses the raw AppSettings channel rather than the environment service, so it bypasses the central environment API and must be maintained separately in each hosting application's web.config. Naming is inconsistent between the two settings (SCREAMING_SNAKE_CASE vs. PascalCase), which increases the chance of a mis-keyed entry in a host web.config.* The library's own app.config is not deployed for a class library, so its Newtonsoft.Json binding redirect must be duplicated in the host application configuration.*
Related documentation¶
- Library index
- Overview
- Architecture
- Dependencies
- Operations and processes
- Business rules
- Security and authorization
Sources¶
SAIF.Presentation.Web.Core.Infragistics111/clsMailMessage.vbSAIF.Presentation.Web.Core.Infragistics111/NavigationContext.vbSAIF.Presentation.Web.Core.Infragistics111/AppViewPageBase.aspx.vbSAIF.Presentation.Web.Core.Infragistics111/app.configSAIF.Presentation.Web.Core.Infragistics111/My Project/Settings.settingsSAIF.Presentation.Web.Core.Infragistics111/My Project/Settings.Designer.vbSAIF.Presentation.Web.Core.Infragistics111/SAIF.Presentation.Web.Core.Infragistics111.vbprojSAIF.Presentation/clsPreferences.vbSAIF.Presentation.Web.MVC/clsContext.vbSAIF.Presentation.Web.MVC/clsControllerBase.vbSAIF.Presentation.Web.MVC/NavigationContext.vbSAIF.Presentation.Web.MVC/ViewPageBase.aspx.vbSAIF.Presentation.Web.Controls.Claim/Web.configSAIF.Presentation.Web.Controls.Policy/Web.config