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

# EnvironmentHost

`EnvironmentHost` resolves a `Uri`'s host component into the naming convention expected by the Environment API — stripping domain suffixes, detecting IP-address hosts, and appending a port suffix for non-default ports.

## Purpose
- Normalize a URI's host into the short-name convention used to look up host-specific settings in the Environment API.

## Context
- Namespace: `SAIF.Framework.Security`
- Assembly/package: `SAIF.Framework.Security.EnvironmentApi`

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| EnvironmentHost(uri) | `public EnvironmentHost(Uri uri)` | Constructs the resolver for the given URI. |
| ResolveHost | `public string ResolveHost()` | Returns the normalized host name: the DNS-safe host with any domain suffix stripped (unless it is an IP address), with `-{port}` appended when the URI does not use its scheme's default port. |

## Behavioral notes
- IP-address hosts are detected by stripping `.` characters and testing whether the remainder parses as a number; such hosts are used as-is without domain stripping.
- Domain stripping takes the first `.`-delimited segment of the host (e.g. `webprod00.external.saif.com` → `webprod00`), per the code comment describing this as a fix for host-lookup confusion caused by fully-qualified domain names.

## Constraints and usage notes
- Used to compute a consistent host key for settings lookup regardless of whether the caller supplies a bare hostname, an FQDN, or an IP address.

> **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
- SAIF.Framework.Security.EnvironmentApi\Services.Common\EnvironmentHost.cs
