Dependencies¶
ADUserServices is a single-project repository with zero <ProjectReference> elements, so it has no in-repository library dependencies. It consumes exactly one internal NuGet package (SAIF.BOF.Framework, for a single configuration-retrieval call), the ASMX/System.DirectoryServices framework surface it is built on, and eight further NuGet packages that are referenced in packages.config but exercise no symbol anywhere in source. It calls no downstream SOAP service, opens no database connection, and vendors no binary. Its technology classification is bof, decided decisively by the SAIF.BOF.Framework package match in packages.config, which outranks the coincidental SAIF.Framework.* reference pattern also present.
Internal dependencies¶
| Dependency | Reference Type | Project path | Usage |
|---|---|---|---|
SAIF.BOF.Framework 1.0.21273.5 (SAIF.Framework.dll) |
NuGet Package | packages\SAIF.BOF.Framework.1.0.21273.5\lib\net461\SAIF.Framework.dll |
Supplies SAIF.Framework.Security.WebEnvironmentService, constructed as New WebEnvironmentService("aduserservices") and read via .GetConfigSetting("aduserservices.allowedips") in GetAllowedIPs |
SAIF.BOF.Framework 1.0.21273.5 (SAIF.Framework.Preferences.dll) |
NuGet Package | packages\SAIF.BOF.Framework.1.0.21273.5\lib\net461\SAIF.Framework.Preferences.dll |
Referenced only — no symbol from this assembly appears in source |
No <ProjectReference> exists anywhere in ADUserServices.vbproj — the solution contains exactly one code project, so there is no same-repository Project Reference dependency to record.
External dependencies¶
| Dependency | Version | Usage |
|---|---|---|
System.Web.Services |
framework (net462) | ASMX web service base class (Inherits System.Web.Services.WebService), <WebMethod()> attribute, and SOAP serialization for all 19 operations |
System.Web |
framework (net462) | ASP.NET hosting and request access — HttpContext.Current.Request, .ServerVariables, .IsLocal |
System.DirectoryServices |
framework (net462) | DirectoryEntry, PropertyValueCollection, .CommitChanges(), and property/method access via DirectoryEntry.Properties("company"), Properties("telephoneNumber"), Properties("mail"), Properties("info"), Properties("title"), Properties("facsimileTelephoneNumber"), Properties("division"), Properties("lastLogonTimestamp"), plus Invoke("Remove", New Object() {deUser.Path}) (group-member removal) and Invoke("SetPassword", oPassword) (password reset) — the late-bound directory-write path used throughout |
System.DirectoryServices.AccountManagement |
framework (net462) | PrincipalContext, UserPrincipal, GroupPrincipal, PrincipalSearcher, PrincipalCollection, Principal, ContextType — the principal-level directory API |
SAIF.Framework.Common |
1.0.15110.3 | Referenced only — no symbol used anywhere in source (unused, see Tech debt TD-08) |
SAIF.HashUtil |
1.0.17332.6 | Referenced only — no GetSecureConfigSetting/SystemHashUtil call exists; unused (TD-08) |
SAIF.Web.API.Clients |
1.0.17018.1 (SAIF.Web.API.Clients.dll, SAIF.Web.API.Core.dll) |
Referenced only — no JsonHttpClient/ClientInfo/RestClient usage; unused (TD-08) |
Autofac |
3.5.2 | Referenced only — no composition root exists anywhere in source; unused (TD-08) |
FluentValidation |
5.5.0.0 | Referenced only — unused (TD-08) |
log4net |
2.0.5 | Referenced only — never initialized or called; unused (TD-08, also SEC-09 — no audit logging exists) |
Newtonsoft.Json |
8.0.3 | Referenced only — unused (TD-08) |
RestSharp |
105.2.3 | Referenced only — unused (TD-08) |
System.Data, System.Data.DataSetExtensions, System.Web.Entity, System.Web.DynamicData, System.Drawing, System.Web.ApplicationServices, System.Web.Extensions, System.EnterpriseServices, System.Configuration, System.Xml (duplicate), System.Xml.Linq |
framework | Web-project template default <Reference> elements and imports; none is used in source (TD-15, LOW) |
Transitive dependencies¶
Dependencies in this section are inherited from framework packages and are not referenced directly by this service, but are required at runtime.
| Dependency | Source framework | Type | Usage |
|---|---|---|---|
WebEnvironmentService configuration-retrieval behavior |
SAIF.BOF.Framework |
Transitive | Internal to SAIF.Framework.dll; not re-derived in this analysis run, no Legends CLI/RAG query was issued, so no statement carries a † marker |
Service dependencies¶
No downstream SOAP proxy or LDAP-fronting service is consumed by this service beyond Active Directory itself. No Service References\/Web References\ folder, no Reference.vb/.wsdl/.svcinfo/.svcmap/.disco file, no ChannelFactory, and no <system.serviceModel> exists anywhere in the repository. This section is omitted from further detail because there are no rows to report.
Database connections¶
No database connection exists. <connectionStrings/> in Web.config is empty, and no SQL, ORM, or BOF data-access construct of any kind appears in source. The service's only backing store is Active Directory, reached through System.DirectoryServices/System.DirectoryServices.AccountManagement against the domains and containers documented in Configuration — that store belongs to configuration, not to a database connection, and is not restated here.
Dependency risks and notes¶
- Unused package surface (TD-08, MEDIUM). Eight referenced NuGet packages —
Autofac,FluentValidation,log4net,Newtonsoft.Json,RestSharp,SAIF.HashUtil,SAIF.Web.API.Clients,SAIF.Framework.Common— plusSAIF.Framework.Preferences.dllexercise zero symbols anywhere in source. Each represents dependency surface (transitive vulnerability exposure, restore weight) with no corresponding benefit. - Unused framework references (TD-15, LOW). A block of web-project template default references (
System.Data,System.Data.DataSetExtensions,System.Web.Entity,System.Web.DynamicData,System.Drawing,System.Web.ApplicationServices,System.Web.Extensions,System.EnterpriseServices,System.Configuration, a duplicateSystem.Xml,System.Xml.Linq) is carried but not used. - Classic
packages.config, noPackageReferencemigration path. The project usespackages.configwith assembly<Reference>hint paths intopackages\; there is noPackageReference-style manifest and no migration in progress. - Technology classification:
bof, decided decisively from a direct read ofpackages.configandADUserServices.vbproj: the*.BOF.*pattern (SAIF.BOF.Framework) matches and takes priority over theSAIF.Framework.*pattern (also present viaSAIF.Framework.Commonand theSAIF.Framework/SAIF.Framework.Preferencesassembly references, which resolve inside the sameSAIF.BOF.Frameworkpackage).saif-bof-data-accesswas deliberately not loaded despite thebofverdict: the package is used only forWebEnvironmentServiceconfiguration retrieval, with noclsBusinessBase,IBusinessCriteria, or data access of any kind for that skill to describe. - No vendored assemblies. Every binary dependency resolves through
packages\, a NuGet reference, or the framework/GAC; no<Reference>carries aHintPathoutsidepackages\.
Related documentation¶
- Service index
- Overview
- Architecture
- Activation and hosting
- Operations
- Operations and processes
- Authentication and authorization
- Business rules
- Configuration
- Faults and error pipeline
- Operational runbook
- Tech debt
Note: Statements marked with * were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts. Statements marked with ** could not be confirmed; treat as unknown until verified.
Sources¶
src\ADUserServices\ADUserServices.vbprojsrc\ADUserServices\packages.configsrc\ADUserServices\clsADUserServices.asmx.vb.saifdocgen\state\runs\20260922-101326-aduserservices\analysis\aduserservices-analysis.md