

A versão 4 (V4) do AWS SDK para .NET foi lançada\$1

Para obter informações sobre mudanças significativas e migrar seus aplicativos, consulte o [tópico de migração](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html).

 [https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html)

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Acessar credenciais e perfis em um aplicativo
<a name="creds-locate"></a>

O método preferido para usar credenciais é permitir que o as AWS SDK para .NET encontre e recupere para você, conforme descrito em. [Resolução de perfil e credenciais](creds-assign.md)

No entanto, você também pode configurar seu aplicativo para recuperar ativamente perfis e credenciais e, em seguida, usar essas credenciais explicitamente ao criar um cliente de serviço. AWS 

[Para recuperar ativamente perfis e credenciais, use classes do Amazon.Runtime. CredentialManagement](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/NRuntimeCredentialManagement.html)namespace.
+ Para encontrar um perfil em um arquivo que usa o formato de arquivo de AWS credenciais (o arquivo de [AWS credenciais compartilhado em seu local padrão ou um arquivo](creds-file.md) de credenciais personalizado), use a classe. [SharedCredentialsFile](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TSharedCredentialsFile.html) Para resumir, algumas vezes, arquivos nesse formato são chamados simplesmente de *arquivos de credenciais* neste texto.
+ Para encontrar um perfil no SDK Store, use a classe [Net SDKCredentials File](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TNetSDKCredentialsFile.html).
+ Para pesquisar em um arquivo de credenciais e no SDK Store, dependendo da configuração de uma propriedade de classe, use a [CredentialProfileStoreChain](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TCredentialProfileStoreChain.html)classe.

  Você pode usar essa classe para encontrar perfis. Você também pode usar essa classe para solicitar AWS credenciais diretamente em vez de usar a `AWSCredentialsFactory` classe (descrita a seguir).
+ Para recuperar ou criar vários tipos de credenciais de um perfil, use a classe [AWSCredentialsFactory](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TAWSCredentialsFactory.html).

As seções a seguir fornecem exemplos dessas classes.

## Exemplos para a aula CredentialProfileStoreChain
<a name="creds-locate-chain"></a>

Você pode obter credenciais ou perfis da [CredentialProfileStoreChain](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TCredentialProfileStoreChain.html)turma usando os [TryGetProfile](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/MCredentialProfileStoreChainTryGetProfileStringCredentialProfile.html)métodos [TryGetAWSCredentials](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/MCredentialProfileStoreChainTryGetAWSCredentialsStringAWSCredentials.html)ou. A propriedade `ProfilesLocation` da classe determina o comportamento dos métodos, da seguinte forma:
+ Se `ProfilesLocation` for nulo ou vazio, pesquise no SDK Store se a plataforma for compatível e, em seguida, pesquise o arquivo de AWS credenciais compartilhado no local padrão.
+ Se a propriedade `ProfilesLocation` contiver um valor, pesquise o arquivo de credenciais especificado na propriedade.

### Obtenha credenciais do SDK Store ou do arquivo de credenciais compartilhado AWS
<a name="creds-locate-chain-get-credentials-default-location"></a>

Este exemplo mostra como obter credenciais usando a classe `CredentialProfileStoreChain` e, em seguida, use as credenciais para criar um objeto [AmazonS3Client](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Client.html). As credenciais podem vir da SDK Store ou do arquivo de credenciais compartilhado da AWS no local padrão.

Este exemplo também usa o [Amazon.Runtime. AWSCredentials](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TAWSCredentials.html)classe.

```
var chain = new CredentialProfileStoreChain();
AWSCredentials awsCredentials;
if (chain.TryGetAWSCredentials("some_profile", out awsCredentials))
{
    // Use awsCredentials to create an Amazon S3 service client
    using (var client = new AmazonS3Client(awsCredentials))
    {
        var response = await client.ListBucketsAsync();
        Console.WriteLine($"Number of buckets: {response.Buckets.Count}");
    }
}
```

### Obtenha um perfil na SDK Store ou no arquivo de AWS credenciais compartilhado
<a name="creds-locate-chain-get-profile-default-location"></a>

Este exemplo mostra como obter um perfil usando a CredentialProfileStoreChain classe. As credenciais podem vir do SDK Store ou do arquivo de AWS credenciais compartilhado no local padrão.

Este exemplo também usa a [CredentialProfile](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TCredentialProfile.html)classe.

```
var chain = new CredentialProfileStoreChain();
CredentialProfile basicProfile;
if (chain.TryGetProfile("basic_profile", out basicProfile))
{
    // Use basicProfile
}
```

### Obtenha credenciais de um arquivo de credenciais personalizado
<a name="creds-locate-chain-get-credentials-alternate-location"></a>

Este exemplo mostra como obter credenciais usando a CredentialProfileStoreChain classe. As credenciais vêm de um arquivo que usa o formato de arquivo de AWS credenciais, mas está em um local alternativo.

Este exemplo também usa o [Amazon.Runtime. AWSCredentials](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TAWSCredentials.html)classe.

```
var chain = new
    CredentialProfileStoreChain("c:\\Users\\sdkuser\\customCredentialsFile.ini");
AWSCredentials awsCredentials;
if (chain.TryGetAWSCredentials("basic_profile", out awsCredentials))
{
    // Use awsCredentials to create an AWS service client
}
```

## Exemplos de aulas SharedCredentialsFile e AWSCredentials fábrica
<a name="creds-locate-cred-shared-file"></a>

### Crie um AmazonS3Client usando a classe SharedCredentialsFile
<a name="creds-locate-cred-shared-file-create-s3-client"></a>

[Este exemplo mostra como encontrar um perfil no arquivo de AWS credenciais compartilhado, criar credenciais a partir do perfil e, em seguida, usar AWS as credenciais para criar um objeto AmazonS3Client.](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Client.html) O exemplo usa a [SharedCredentialsFile](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TSharedCredentialsFile.html)classe.

Este exemplo também usa a [CredentialProfile](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TCredentialProfile.html)classe e o [Amazon.Runtime. AWSCredentials](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TAWSCredentials.html)classe.

```
CredentialProfile basicProfile;
AWSCredentials awsCredentials;
var sharedFile = new SharedCredentialsFile();
if (sharedFile.TryGetProfile("basic_profile", out basicProfile) &&
    AWSCredentialsFactory.TryGetAWSCredentials(basicProfile, sharedFile, out awsCredentials))
{
    // use awsCredentials to create an Amazon S3 service client
    using (var client = new AmazonS3Client(awsCredentials, basicProfile.Region))
    {
        var response = await client.ListBucketsAsync();
        Console.WriteLine($"Number of buckets: {response.Buckets.Count}");
    }
}
```

**nota**  
A classe [Net SDKCredentials File](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TNetSDKCredentialsFile.html) pode ser usada exatamente da mesma forma, exceto que você instanciaria um novo objeto Net SDKCredentials File em vez de um SharedCredentialsFile objeto.