DefaultCredentialsProvider.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /*
  2. * Copyright (C) Alibaba Cloud Computing
  3. * All rights reserved.
  4. *
  5. * 版权所有 (C)阿里云计算有限公司
  6. */
  7. using System;
  8. using Aliyun.OSS.Common.Authentication;
  9. using Aliyun.OSS.Util;
  10. namespace Aliyun.OSS.Common.Authentication
  11. {
  12. /// <summary>
  13. /// 默认鉴权工厂类
  14. /// </summary>
  15. public class DefaultCredentialsProvider : ICredentialsProvider
  16. {
  17. private volatile ICredentials _creds;
  18. /// <summary>
  19. /// 构造一个<see cref="DefaultCredentialsProvider"/>的实例
  20. /// </summary>
  21. /// <param name="creds"><see cref="ICredentials"/>接口的实例</param>
  22. public DefaultCredentialsProvider(ICredentials creds)
  23. {
  24. SetCredentials(creds);
  25. }
  26. /// <inheritdoc/>
  27. public void SetCredentials(ICredentials creds)
  28. {
  29. if (creds == null)
  30. throw new ArgumentNullException("creds");
  31. OssUtils.CheckCredentials(creds.AccessKeyId, creds.AccessKeySecret);
  32. _creds = creds;
  33. }
  34. /// <inheritdoc/>
  35. public ICredentials GetCredentials()
  36. {
  37. return _creds;
  38. }
  39. }
  40. }