SecurityTokenProviderContainer.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. //-----------------------------------------------------------------------------
  2. // Copyright (c) Microsoft Corporation. All rights reserved.
  3. //-----------------------------------------------------------------------------
  4. namespace System.ServiceModel.Security.Tokens
  5. {
  6. using System;
  7. using System.Security.Cryptography.X509Certificates;
  8. using System.Runtime.CompilerServices;
  9. using System.IdentityModel.Selectors;
  10. using System.IdentityModel.Tokens;
  11. class SecurityTokenProviderContainer
  12. {
  13. SecurityTokenProvider tokenProvider;
  14. public SecurityTokenProviderContainer(SecurityTokenProvider tokenProvider)
  15. {
  16. if (tokenProvider == null)
  17. {
  18. throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("tokenProvider");
  19. }
  20. this.tokenProvider = tokenProvider;
  21. }
  22. public SecurityTokenProvider TokenProvider
  23. {
  24. get { return this.tokenProvider; }
  25. }
  26. [MethodImpl(MethodImplOptions.NoInlining)]
  27. public void Close(TimeSpan timeout)
  28. {
  29. SecurityUtils.CloseTokenProviderIfRequired(this.tokenProvider, timeout);
  30. }
  31. [MethodImpl(MethodImplOptions.NoInlining)]
  32. public void Open(TimeSpan timeout)
  33. {
  34. SecurityUtils.OpenTokenProviderIfRequired(this.tokenProvider, timeout);
  35. }
  36. [MethodImpl(MethodImplOptions.NoInlining)]
  37. public void Abort()
  38. {
  39. SecurityUtils.AbortTokenProviderIfRequired(this.tokenProvider);
  40. }
  41. [MethodImpl(MethodImplOptions.NoInlining)]
  42. public X509Certificate2 GetCertificate(TimeSpan timeout)
  43. {
  44. X509SecurityToken token = this.tokenProvider.GetToken(timeout) as X509SecurityToken;
  45. if (token != null)
  46. {
  47. return token.Certificate;
  48. }
  49. else
  50. {
  51. return null;
  52. }
  53. }
  54. }
  55. }