# IUserSecretsManager

- Kind: `interface`
- Package: [Aspire.Hosting](/reference/api/csharp/aspire.hosting.md)
- Version: `13.3.0`
- Namespace: `Aspire.Hosting`
- Target framework: `net8.0`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/bd20f904cde09ecb9c9ae5116a6f13614bf2d7c2/src/Aspire.Hosting/UserSecrets/IUserSecretsManager.cs)

Defines an interface for managing user secrets with support for read and write operations.

## Definition

```csharp
namespace Aspire.Hosting;

public interface IUserSecretsManager
{
    // ...
}
```

## ATS metadata

### ATS export

- Type ID: `Aspire.Hosting/IUserSecretsManager`
- Public instance properties are exported as ATS capabilities.
- Public instance methods are exported as ATS capabilities.

## Properties

- [FilePath](/reference/api/csharp/aspire.hosting/iusersecretsmanager/properties.md#filepath) : `string` `abstract` `get` -- Gets the path to the user secrets file.
- [IsAvailable](/reference/api/csharp/aspire.hosting/iusersecretsmanager/properties.md#isavailable) : `bool` `abstract` `get` -- Gets a value indicating whether user secrets are available.

## Methods

- [GetOrSetSecret(IConfigurationManager, string, Func<string>)](/reference/api/csharp/aspire.hosting/iusersecretsmanager/methods.md#getorsetsecret-iconfigurationmanager-string-func-string) `abstract` `ats ignored` -- Gets a secret value if it exists in configuration, or sets it using the value generator if it doesn't.
- [SaveStateAsync(JsonObject, CancellationToken)](/reference/api/csharp/aspire.hosting/iusersecretsmanager/methods.md#savestateasync-jsonobject-cancellationtoken) : `Task` `abstract` `ats ignored` -- Saves state to user secrets asynchronously (for deployment state manager). If multiple callers save state concurrently, the last write wins.
- [TryDeleteSecret(string)](/reference/api/csharp/aspire.hosting/iusersecretsmanager/methods.md#trydeletesecret-string) : `bool` `virtual` `ats export` -- Attempts to delete a user secret value synchronously.
- [TrySetSecret(string, string)](/reference/api/csharp/aspire.hosting/iusersecretsmanager/methods.md#trysetsecret-string-string) : `bool` `abstract` `ats export` -- Attempts to set a user secret value synchronously.
