in aliyun-net-credentials/Provider/RamRoleArnCredentialProvider.cs [115:156]
private RamRoleArnCredentialProvider(Builder builder): base(builder)
{
this.durationSeconds = (builder.durationSeconds == null || builder.durationSeconds == 0) ? 3600 : builder.durationSeconds.Value;
if (this.durationSeconds < 900)
{
throw new CredentialException("Session duration should be in the range of 900s - max session duration");
}
this.roleSessionName = string.IsNullOrEmpty(builder.roleSessionName)
? Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ROLE_SESSION_NAME")
?? "credentials-csharp-" + (DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds
: builder.roleSessionName;
this.regionId = string.IsNullOrEmpty(builder.regionId) ? "cn-hangzhou" : builder.regionId;
this.roleArn = string.IsNullOrEmpty(builder.roleArn) ? Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ROLE_ARN") : builder.roleArn;
this.policy = builder.policy;
this.connectTimeout = (builder.connectTimeout == null || builder.connectTimeout <= 0) ? 5000 : builder.connectTimeout.Value;
this.readTimeout = (builder.readTimeout == null || builder.readTimeout <= 0) ? 10000 : builder.readTimeout.Value;
this.externalId = builder.externalId;
this.STSEndpoint = builder.stsEndpoint;
if (string.IsNullOrEmpty(builder.stsEndpoint))
{
this.STSEndpoint = string.Format("sts{0}.aliyuncs.com", AuthUtils.GetStsRegionWithVpc(builder.stsRegionId, builder.enableVpc));
}
if (builder.credentialsProvider != null)
{
this.CredentialsProvider = builder.credentialsProvider;
}
else if (builder.securityToken == null)
{
this.CredentialsProvider = new StaticAKCredentialsProvider.Builder()
.AccessKeyId(builder.accessKeyId)
.AccessKeySecret(builder.accessKeySecret)
.Build();
}
else
{
this.CredentialsProvider = new StaticSTSCredentialsProvider.Builder()
.AccessKeyId(builder.accessKeyId)
.AccessKeySecret(builder.accessKeySecret)
.SecurityToken(builder.securityToken)
.Build();
}
}