private void SetCreds() { if (creds == null || DateTime.Now >= mfaExpires || AWSConfigs.AWSProfileName != Profile_CBB.Text) { AWSConfigs.AWSProfileName = Profile_CBB.Text; creds = new StoredProfileAWSCredentials(Profile_CBB.Text); if (AssumeRole_CBB.Text != "none") { //Get selected role to assume ComboboxItem o = (ComboboxItem)AssumeRole_CBB.SelectedItem; //Create AssumeRole request Amazon.SecurityToken.Model.AssumeRoleRequest assumeRequest = new Amazon.SecurityToken.Model.AssumeRoleRequest(); assumeRequest.RoleArn = o.Role; assumeRequest.RoleSessionName = UserName + "@" + AppName; //Get MFA Device Amazon.IdentityManagement.AmazonIdentityManagementServiceClient imc = new Amazon.IdentityManagement.AmazonIdentityManagementServiceClient(creds); Amazon.IdentityManagement.Model.ListMFADevicesRequest mfaRequest = new Amazon.IdentityManagement.Model.ListMFADevicesRequest(); Amazon.IdentityManagement.Model.ListMFADevicesResponse mfaResponse = imc.ListMFADevices(mfaRequest); if (mfaResponse != null) { if (mfaResponse.MFADevices.Count > 0) { assumeRequest.SerialNumber = mfaResponse.MFADevices[0].SerialNumber; } } //If MFA Device was not obtained if (assumeRequest.SerialNumber == string.Empty) { //Get mfa associated with selected profile if (MfaDevices.ContainsKey(Profile_CBB.Text)) { assumeRequest.SerialNumber = MfaDevices[Profile_CBB.Text]; } else { assumeRequest.SerialNumber = MfaDevices["default"]; } } //Get MFA code mfa m = new mfa(); m.ShowDialog(); assumeRequest.TokenCode = mfacode.Trim(); //MFA code Amazon.SecurityToken.AmazonSecurityTokenServiceClient secClient = new Amazon.SecurityToken.AmazonSecurityTokenServiceClient(); Amazon.SecurityToken.Model.AssumeRoleResponse assumeResponse = secClient.AssumeRole(assumeRequest); mfaExpires = assumeResponse.Credentials.Expiration; creds = assumeResponse.Credentials; } } }