Skip to content

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 — plus SAIF.Framework.Preferences.dll exercise 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 duplicate System.Xml, System.Xml.Linq) is carried but not used.
  • Classic packages.config, no PackageReference migration path. The project uses packages.config with assembly <Reference> hint paths into packages\; there is no PackageReference-style manifest and no migration in progress.
  • Technology classification: bof, decided decisively from a direct read of packages.config and ADUserServices.vbproj: the *.BOF.* pattern (SAIF.BOF.Framework) matches and takes priority over the SAIF.Framework.* pattern (also present via SAIF.Framework.Common and the SAIF.Framework/SAIF.Framework.Preferences assembly references, which resolve inside the same SAIF.BOF.Framework package). saif-bof-data-access was deliberately not loaded despite the bof verdict: the package is used only for WebEnvironmentService configuration retrieval, with no clsBusinessBase, 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 a HintPath outside packages\.

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.vbproj
  • src\ADUserServices\packages.config
  • src\ADUserServices\clsADUserServices.asmx.vb
  • .saifdocgen\state\runs\20260922-101326-aduserservices\analysis\aduserservices-analysis.md