---
title: ClaimUserSecurityAccess
summary: API reference for ClaimUserSecurityAccess.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-09-24
library: SAIF.Services
reference_type: package
---

# ClaimUserSecurityAccess

A small value type that pre-resolves whether a given `ISystemUserProfile` holds conflict-claim and secure-claim authorization, so that access can be checked repeatedly (e.g. across many claims) without re-querying the user profile each time. It depends only on the `ISystemUserProfile` supplied at construction, checking it against either the fixed `"ConflictClaim"`/`"SecureClaim"` role names or caller-supplied resource names.

## Purpose
- Captures, at construction time, whether a user is authorized for conflict-claim access and secure-claim access.
- Supports checking authorization against either the standard `ConflictClaim`/`SecureClaim` role names or arbitrary caller-specified resource names.

## Context
- Namespace: `SAIF.Services.Security`
- Assembly/package: `SAIF.Services` (packaged inside the `SAIF.SAIFCode.Core` NuGet package)

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| HasConflict | `public bool HasConflict { get; set; }` | Whether the resolved user is authorized for conflict-claim access. |
| HasSecure | `public bool HasSecure { get; set; }` | Whether the resolved user is authorized for secure-claim access. |
| ClaimUserSecurityAccess(userProfile) | `public ClaimUserSecurityAccess(ISystemUserProfile userProfile)` | Enforces that `userProfile` is non-null and sets `HasConflict`/`HasSecure` by checking it against the standard `ClaimSecurityRoles.ConflictClaim`/`ClaimSecurityRoles.SecureClaim` role names. |
| ClaimUserSecurityAccess(userProfile, conflictResource, secureResource) | `public ClaimUserSecurityAccess(ISystemUserProfile userProfile, string conflictResource, string secureResource)` | Enforces that `userProfile` and both resource names are non-null/non-whitespace, and sets `HasConflict`/`HasSecure` by checking the profile against the given custom resource names instead of the standard role names. |

## Behavioral notes
- Both flags are computed once at construction and stored as mutable public properties, so a change to the underlying user's authorization after construction is not reflected without creating a new instance*.
- The two-argument-resource constructor allows this type to be reused for authorization checks against resource names other than the built-in `ConflictClaim`/`SecureClaim` roles*.

> **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
- Services/SAIF.Services/Security/ClaimUserSecurityAccess.cs
