static private async Task getCognitoCredentials()

in dotnet/Program.cs [123:165]


        static private async Task<UserCognitoCredentials> getCognitoCredentials(String userEmail, String userPassword)
        {
          String cognitoUserPoolId = "us-east-1_n8TiZp7tu";
          String cognitoClientId = "6clvd0v40jggbaa5qid2h6hkqf";
          String cognitoIdentityPoolId = "us-east-1:bff024bb-06d0-4b04-9e5d-eb34ed07f884";
          Amazon.RegionEndpoint cognitoRegion = Amazon.RegionEndpoint.USEast1;

          AmazonCognitoIdentityProviderClient provider =
              new AmazonCognitoIdentityProviderClient(new Amazon.Runtime.AnonymousAWSCredentials(), Amazon.RegionEndpoint.USEast1);
          CognitoUserPool userPool = new CognitoUserPool(cognitoUserPoolId, cognitoClientId, provider);
          CognitoUser user = new CognitoUser(userEmail, cognitoClientId, userPool, provider);

          AuthFlowResponse context = await user.StartWithSrpAuthAsync(new InitiateSrpAuthRequest()
              {
                  Password = userPassword
              }).ConfigureAwait(false);

          String accessToken = context.AuthenticationResult.AccessToken;
          String idToken = context.AuthenticationResult.IdToken;

          CognitoAWSCredentials credentials =
              user.GetCognitoAWSCredentials(cognitoIdentityPoolId, cognitoRegion);

          var identityClient = new AmazonCognitoIdentityClient(credentials, cognitoRegion);
          var idRequest = new Amazon.CognitoIdentity.Model.GetIdRequest();
          idRequest.IdentityPoolId = cognitoIdentityPoolId;
          idRequest.Logins = new Dictionary<string,string> {  {"cognito-idp.us-east-1.amazonaws.com/"+cognitoUserPoolId , idToken } };
          var idResponseId = await identityClient.GetIdAsync(idRequest).ConfigureAwait(false);
          if (idResponseId.HttpStatusCode != System.Net.HttpStatusCode.OK) {
            Console.WriteLine(String.Format("Failed to get credentials for identity. Status code: {0} ", idResponseId.HttpStatusCode));
            System.Environment.Exit(1);
          }

          var idResponseCredential = await identityClient.GetCredentialsForIdentityAsync(idResponseId.IdentityId, new Dictionary<string,string> {  {"cognito-idp.us-east-1.amazonaws.com/"+cognitoUserPoolId , idToken } }).ConfigureAwait(false);
          if (idResponseCredential.HttpStatusCode != System.Net.HttpStatusCode.OK) {
            Console.WriteLine(String.Format("Failed to get credentials for identity. Status code: {0} ", idResponseCredential.HttpStatusCode));
            System.Environment.Exit(1);
          }

          var cognitoCredentials = new UserCognitoCredentials(idResponseCredential.Credentials);

          return cognitoCredentials;
        }