aliyun-net-credentials/RamRoleArnCredential.cs (95 lines of code) (raw):

using System; using System.Threading.Tasks; using Aliyun.Credentials.Models; using Aliyun.Credentials.Provider; using Aliyun.Credentials.Utils; namespace Aliyun.Credentials { [Obsolete] public class RamRoleArnCredential : BaseCredential, IAlibabaCloudCredentials { private string accessKeyId; private string accessKeySecret; private string securityToken; public RamRoleArnCredential(string accessKeyId, string accessKeySecret, string securityToken, long expiration, IAlibabaCloudCredentialsProvider provider) : base(expiration, provider) { this.accessKeyId = accessKeyId; this.accessKeySecret = accessKeySecret; this.securityToken = securityToken; } public void RefreshCredential() { if (WithShouldRefresh()) { CredentialModel credential = GetNewCredential(); this.expiration = credential.Expiration; this.accessKeyId = credential.AccessKeyId; this.accessKeySecret = credential.AccessKeySecret; this.securityToken = credential.SecurityToken; } } public async Task RefreshCredentialAsync() { if (WithShouldRefresh()) { CredentialModel credential = await GetNewCredentialAsync(); this.expiration = credential.Expiration; this.accessKeyId = credential.AccessKeyId; this.accessKeySecret = credential.AccessKeySecret; this.securityToken = credential.SecurityToken; } } public string GetAccessKeyId() { RefreshCredential(); return this.accessKeyId; } public async Task<string> GetAccessKeyIdAsync() { await RefreshCredentialAsync(); return this.accessKeyId; } public string GetAccessKeySecret() { RefreshCredential(); return this.accessKeySecret; } public async Task<string> GetAccessKeySecretAsync() { await RefreshCredentialAsync(); return this.accessKeySecret; } public string GetSecurityToken() { RefreshCredential(); return this.securityToken; } public async Task<string> GetSecurityTokenAsync() { await RefreshCredentialAsync(); return this.securityToken; } public string GetCredentialType() { return AuthConstant.RamRoleArn; } public async Task<string> GetCredentialTypeAsync() { return await Task.Run(() => { return AuthConstant.RamRoleArn; }); } public long GetExpiration() { RefreshCredential(); return expiration; } public async Task<long> GetExpirationAsync() { await RefreshCredentialAsync(); return expiration; } } }