

La AWS SDK para .NET V3 ha entrado en modo de mantenimiento.

Le recomendamos que migre a la [AWS SDK para .NET V4](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/welcome.html). Para obtener información y detalles adicionales sobre cómo migrar, consulta nuestro [anuncio sobre el modo de mantenimiento](https://aws.amazon.com/blogs/developer/aws-sdk-for-net-v3-maintenance-mode-announcement/).

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Acceso a las credenciales y perfiles en una aplicación
<a name="creds-locate"></a>

El método preferido para usar las credenciales es permitir que las AWS SDK para .NET encuentren y las recuperen por usted, tal y como se describe en[Resolución de credenciales y perfil](creds-assign.md).

Sin embargo, también puede configurar la aplicación para que recupere perfiles y credenciales de forma activa y, a continuación, utilizarlas de forma explícita al crear un cliente de AWS servicio.

Para recuperar perfiles y credenciales de forma activa, utilice las clases de [Amazon.Runtime. CredentialManagement](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/NRuntimeCredentialManagement.html)espacio de nombres.
+ Para buscar un perfil en un archivo que utilice el formato de archivo de AWS credenciales (el [archivo de AWS credenciales compartido en su ubicación predeterminada](creds-file.md) o un archivo de credenciales personalizado), utilice la [SharedCredentialsFile](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TSharedCredentialsFile.html)clase. En aras de una mayor brevedad, en este texto los archivos con este formato a veces se denominarán simplemente *archivos de credenciales*.
+ Para buscar un perfil en la tienda del SDK, usa la clase [Net SDKCredentials File](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TNetSDKCredentialsFile.html).
+ Para buscar tanto en un archivo de credenciales como en la tienda del SDK, en función de la configuración de una propiedad de clase, usa la [CredentialProfileStoreChain](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TCredentialProfileStoreChain.html)clase.

  Esta clase se puede usar para encontrar perfiles. También puedes usar esta clase para solicitar AWS credenciales directamente en lugar de usar la `AWSCredentialsFactory` clase (que se describe a continuación).
+ Para recuperar o crear varios tipos de credenciales a partir de un perfil, utilice la clase [AWSCredentialsFactory](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TAWSCredentialsFactory.html).

En las siguientes secciones se muestran ejemplos de estas clases.

## Ejemplos de clase CredentialProfileStoreChain
<a name="creds-locate-chain"></a>

Puede obtener credenciales o perfiles de la [CredentialProfileStoreChain](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TCredentialProfileStoreChain.html)clase mediante los [TryGetProfile](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/MCredentialProfileStoreChainTryGetProfileStringCredentialProfile.html)métodos [TryGetAWSCredentials](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/MCredentialProfileStoreChainTryGetAWSCredentialsStringAWSCredentials.html)o. La propiedad `ProfilesLocation` de la clase determina el comportamiento de los métodos del siguiente modo:
+ Si `ProfilesLocation` es nulo o está vacío, busca en la tienda del SDK si la plataforma lo admite y, a continuación, busca el archivo de AWS credenciales compartidas en la ubicación predeterminada.
+ Si la propiedad `ProfilesLocation` contiene un valor, busque en el archivo de credenciales especificado en la propiedad.

### Obtenga las credenciales de la tienda del SDK o del archivo de AWS credenciales compartidas
<a name="creds-locate-chain-get-credentials-default-location"></a>

En este ejemplo se muestra cómo obtener credenciales mediante la clase `CredentialProfileStoreChain` y cómo usarlas a continuación para crear un objeto [AmazonS3Client](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/S3/TS3Client.html). Las credenciales pueden proceder de SDK Store o del archivo de credenciales de AWS compartido en la ubicación predeterminada.

En este ejemplo también se usa [Amazon.Runtime. AWSCredentials](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TAWSCredentials.html)clase.

```
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}");
    }
}
```

### Obtenga un perfil de la tienda del SDK o del archivo de AWS credenciales compartido
<a name="creds-locate-chain-get-profile-default-location"></a>

En este ejemplo, se muestra cómo obtener un perfil mediante la CredentialProfileStoreChain clase. Las credenciales pueden provenir de la tienda del SDK o del archivo de AWS credenciales compartido en la ubicación predeterminada.

En este ejemplo también se usa la [CredentialProfile](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TCredentialProfile.html)clase.

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

### Obtención de credenciales desde un archivo de credenciales personalizado
<a name="creds-locate-chain-get-credentials-alternate-location"></a>

En este ejemplo, se muestra cómo obtener credenciales mediante la CredentialProfileStoreChain clase. Las credenciales provienen de un archivo que usa el formato de archivo de AWS credenciales, pero se encuentra en una ubicación alternativa.

En este ejemplo también se utiliza [Amazon.Runtime. AWSCredentials](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TAWSCredentials.html)clase.

```
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
}
```

## Ejemplos de clases SharedCredentialsFile y AWSCredentials Factory
<a name="creds-locate-cred-shared-file"></a>

### Cree un AmazonS3Client mediante la clase SharedCredentialsFile
<a name="creds-locate-cred-shared-file-create-s3-client"></a>

[En este ejemplo, se muestra cómo buscar un perfil en el archivo de AWS credenciales compartido, crear AWS credenciales a partir del perfil y, a continuación, utilizar las credenciales para crear un objeto AmazonS3Client.](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/S3/TS3Client.html) En el ejemplo se usa la clase. [SharedCredentialsFile](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TSharedCredentialsFile.html)

En este ejemplo también se utiliza la [CredentialProfile](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TCredentialProfile.html)clase y el [Amazon.Runtime. AWSCredentials](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TAWSCredentials.html)clase.

```
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**  
La clase [Net SDKCredentials File](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TNetSDKCredentialsFile.html) se puede usar exactamente de la misma manera, excepto que se crea una instancia de un nuevo objeto Net SDKCredentials File en lugar de un SharedCredentialsFile objeto.