public virtual AlibabaCloudCredentials GetCredentials()

in aliyun-net-sdk-core/Auth/Provider/InstanceProfileCredentialsProvider.cs [60:99]


        public virtual AlibabaCloudCredentials GetCredentials()
        {
            try
            {
                if (credentials == null)
                {
                    credentials = fetcher.Fetch(maxRetryTimes);
                }

                if (credentials.IsExpired())
                {
                    throw new ClientException("SDK.SessionTokenExpired", "Current session token has expired.");
                }

                if (!credentials.WillSoonExpire() || !credentials.ShouldRefresh())
                {
                    return credentials;
                }

                credentials = fetcher.Fetch();
                return credentials;
            }
            catch (ClientException ex)
            {
                if (ex.ErrorCode != null && ex.ErrorCode.Equals("SDK.SessionTokenExpired") &&
                    ex.ErrorMessage != null && ex.ErrorMessage.Equals("Current session token has expired."))
                {
                    CommonLog.LogException(ex, ex.ErrorCode, ex.ErrorMessage);
                    throw new ClientException(ex.ErrorCode, ex.ErrorMessage);
                }

                // Use the current expiring session token and wait for next round
                if (credentials != null)
                {
                    credentials.SetLastFailedRefreshTime();
                }
            }

            return credentials;
        }