

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# SecretsManagerCache
<a name="retrieving-secrets_cache-net-SecretsManagerCache"></a>

适用于从 Secrets Manager 请求的密钥的内存中缓存。您使用 [GetSecretString](#retrieving-secrets_cache-net-SecretsManagerCache-methods-GetSecretString) 或 [GetSecretBinary](#retrieving-secrets_cache-net-SecretsManagerCache-methods-GetSecretBinary) 从缓存中检索密钥。您可以通过传入构造函数中的 [SecretCacheConfiguration](retrieving-secrets_cache-net-SecretCacheConfiguration.md) 对象来配置缓存设置。

有关包括示例在内的更多信息，请参阅 [使用 .NET 和客户端缓存获取 Secrets Manager 密钥值](retrieving-secrets_cache-net.md)。

## 构造函数
<a name="retrieving-secrets_cache-net-SecretsManagerCache-constructors"></a>

`public SecretsManagerCache()`  
适用于 `SecretsManagerCache` 对象的默认构造函数。

`public SecretsManagerCache(IAmazonSecretsManager secretsManager)`  
使用 Secrets Manager 客户端（使用提供的 [AmazonSecretsManagerClient](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/SecretsManager/TSecretsManagerClient.html) 创建）构造新缓存。使用此构造函数可自定义 Secrets Manager 客户端，例如使用某一特定区域或终端节点。  
**参数**    
secretsManager  
[AmazonSecretsManagerClient](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/SecretsManager/TSecretsManagerClient.html)要从中检索机密。

`public SecretsManagerCache(SecretCacheConfiguration config)`  
使用提供的 [SecretCacheConfiguration](retrieving-secrets_cache-net-SecretCacheConfiguration.md) 构造新密钥缓存。使用此构造函数来配置缓存，例如要缓存的密钥数量及其刷新频率。  
**参数**    
config  
一个 [SecretCacheConfiguration](retrieving-secrets_cache-net-SecretCacheConfiguration.md)，其中包含缓存的配置信息。

`public SecretsManagerCache(IAmazonSecretsManager secretsManager, SecretCacheConfiguration config)`  
使用使用提供的[AmazonSecretsManagerClient](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/SecretsManager/TSecretsManagerClient.html)和创建的 Secrets Manager 客户端构造新的缓存。[SecretCacheConfiguration](retrieving-secrets_cache-net-SecretCacheConfiguration.md)使用此构造函数可自定义 Secrets Manager 客户端，例如使用某一特定区域或终端节点以及配置缓存，例如要缓存的密钥数量及其刷新频率。  
**参数**    
secretsManager  
[AmazonSecretsManagerClient](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/SecretsManager/TSecretsManagerClient.html)要从中检索机密。  
config  
一个 [SecretCacheConfiguration](retrieving-secrets_cache-net-SecretCacheConfiguration.md)，其中包含缓存的配置信息。

## 方法
<a name="retrieving-secrets_cache-net-SecretsManagerCache-methods"></a>

### GetSecretString
<a name="retrieving-secrets_cache-net-SecretsManagerCache-methods-GetSecretString"></a>

 `public async Task<String> GetSecretString(String secretId)`

从 Secrets Manager 中检索字符串密钥。参数

secretId  
要检索的密钥的 ARN 或名称。

### GetSecretBinary
<a name="retrieving-secrets_cache-net-SecretsManagerCache-methods-GetSecretBinary"></a>

`public async Task<byte[]> GetSecretBinary(String secretId)`

从 Secrets Manager 中检索二进制密钥。参数

secretId  
要检索的密钥的 ARN 或名称。

### RefreshNowAsync
<a name="retrieving-secrets_cache-net-SecretsManagerCache-methods-RefreshNowAsync"></a>

`public async Task<bool> RefreshNowAsync(String secretId)`

请从 Secrets Manager 请求密钥值，并使用任何更改更新缓存。如果没有现有的缓存条目，请创建一个新缓存条目。如果刷新成功，则返回 `true`。参数

secretId  
要检索的密钥的 ARN 或名称。

### GetCachedSecret
<a name="retrieving-secrets_cache-net-SecretsManagerCache-methods-GetCachedSecret"></a>

`public SecretCacheItem GetCachedSecret(string secretId)`

返回指定密钥的缓存条目（如果缓存中存在该密钥）。否则，从 Secret Manager 中该检索密钥，并创建一个新缓存条目。参数

secretId  
要检索的密钥的 ARN 或名称。