---
title: clsADServices
summary: API reference for clsADServices.
status: draft
owner: <owner>
last_reviewed: 2026-07-23
library: SAIF.Framework.Security
reference_type: package
---

# clsADServices

`clsADServices` is an auto-generated ASMX web-service proxy (`Web References\ADServices\Reference.vb`) for the legacy AD web service. It is retained for backward compatibility during the library's migration to the WCF `SecurityService`, and is consumed directly by `clsAccountMaintProxy` and by select `clsSecurityPrincipal` methods.

## Purpose
- Provide the generated client proxy for legacy resource-access authorization checks and directory/user-lookup operations against the legacy ASMX AD web service.

## Context
- Namespace: `ADServices`
- Assembly/package: `SAIF.BOF.Framework.Security` (bundled into the repository-wide `SAIF.BOF.Framework` NuGet package); generated from `clsadservices.wsdl` / `clsadservices.disco`

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `HasAccess` | `Function HasAccess(mailid As String, resourcename As String) As Boolean` | Legacy resource-access authorization check (internal domain). Used by `clsAccountMaintProxy.ResourceAccessValid`. |
| `HasAccessExternal` | `Function HasAccessExternal(mailid As String, resourcename As String) As Boolean` | Legacy resource-access authorization check (external domain). Used by `clsAccountMaintProxy.ResourceAccessValidExternal`. |
| `HasAccessCache` | `Function HasAccessCache(mailid As String, resourcename As String) As Boolean` | Cached legacy resource-access authorization check (internal domain). Used by `clsAccountMaintProxy.ResourceAccessValidCached`. |
| `HasAccessCacheExternal` | `Function HasAccessCacheExternal(mailid As String, resourcename As String) As Boolean` | Cached legacy resource-access authorization check (external domain). Used by `clsAccountMaintProxy.ResourceAccessValidCachedExternal`. |
| `WhoHasAccessCache` | `Function WhoHasAccessCache(resourcename As String) As Array` | Enumerates accounts with access to a resource. Used by `clsAccountMaintProxy.GetWhoHasAccess`; not an authorization decision. |
| `GetUserInfo` | `Function GetUserInfo(mailid As String) As USERINFOSTRUCT` | Retrieves full directory user info for a mail ID. Used by `clsAccountMaintProxy.GetUserInfo`. |
| `GetUserInfoExternal` | `Function GetUserInfoExternal(mailid As String) As USERINFOSTRUCT` | Retrieves full directory user info for an external-domain mail ID. Used by `clsAccountMaintProxy.GetUserInfoExternal`. |
| `GetEMailAddress` | `Function GetEMailAddress(userName As String, domain As String) As String` | Retrieves the email address for a user. Used by `clsSecurityPrincipal.GetEmailAddress`. |
| `GetIDNumber` | `Function GetIDNumber(userName As String, domain As String) As String` | Retrieves the ID number for a user. Used by `clsSecurityPrincipal.GetIDNumber` and `clsAccountMaintProxy.GetIDNumber`. |
| `GetLastLogon` | `Function GetLastLogon(mailid As String, domain As String) As Date` | Retrieves the last logon date for a user. Used by `clsAccountMaintProxy.GetLastLogonDate`. |
| `GetDefaultPrinter` | `Function GetDefaultPrinter(userName As String) As String` | Retrieves the default printer UNC path for a user. Used by `clsSecurityPrincipal.GetDefaultPrinter`. |
| `GetAccountsByIDNumber` | `Function GetAccountsByIDNumber(idNumber As String) As Array` | Retrieves all accounts associated with an ID number. Used by `clsAccountMaintProxy.GetAccountsByID`. |
| `GetPaymentPassword` | `Function GetPaymentPassword(mailid As String, domain As String) As String` | Retrieves a payment password. Used by `clsAccountMaintProxy.GetPaymentPassword`. |
| `SetPaymentPassword` | `Function SetPaymentPassword(mailid As String, domain As String, passwd As String) As Boolean` | Sets a payment password. Used by `clsAccountMaintProxy.SetPaymentPassword`. |
| `Url` | `Property Url As String` | The ASMX service endpoint URL, set by callers from the `legacyADServiceUrl` config setting before use. |

Additional generated members (`IsUserMenuCached`, `RemoveUserMenuCache`, `GetUserMenuCached`, `SetUserMenuCached`, `ResourceCached`, and async variants of the above) are declared on the generated proxy but are not invoked from this library's own code.*

## Behavioral notes
- This is an auto-generated WSDL/disco proxy class (`Partial Public Class clsADServices`); its members mirror the legacy ASMX web service's operation contract.
- All four `HasAccess*` methods are counted as programmatic authorization enforcement points — see [security and authorization](../../security-authorization.md#programmatic-authorization-checks). `WhoHasAccessCache` is excluded as an enumeration operation rather than an authorization decision.

## Constraints and usage notes
- Callers must set `Url` (typically resolved from the `legacyADServiceUrl` config setting) before invoking any operation; the generated class does not resolve this automatically.
- No suffixing logic (e.g., `Test`/`TestResource`) exists within this proxy itself — any environment-specific resource-name suffixing is the responsibility of the calling class (e.g., `clsAccountMaintProxy`).

> **Note:** Statements marked with * were inferred from code structure, naming conventions, or
> contextual evidence where direct confirmation was not available in source artifacts.

## Sources
- `SAIF.Framework.Security\Web References\ADServices\Reference.vb`
