SspiSecurityTokenProvider.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. //-----------------------------------------------------------------------------
  2. // Copyright (c) Microsoft Corporation. All rights reserved.
  3. //-----------------------------------------------------------------------------
  4. namespace System.ServiceModel.Security
  5. {
  6. using System.IdentityModel.Claims;
  7. using System.ServiceModel;
  8. using System.IdentityModel.Policy;
  9. using System.IdentityModel.Selectors;
  10. using System.IdentityModel.Tokens;
  11. using System.ServiceModel.Security.Tokens;
  12. using System.Net;
  13. using System.Security.Principal;
  14. public class SspiSecurityTokenProvider : SecurityTokenProvider
  15. {
  16. internal const bool DefaultAllowNtlm = true;
  17. internal const bool DefaultExtractWindowsGroupClaims = true;
  18. internal const bool DefaultAllowUnauthenticatedCallers = false;
  19. SspiSecurityToken token;
  20. // client side ctor
  21. public SspiSecurityTokenProvider(NetworkCredential credential, bool allowNtlm, TokenImpersonationLevel impersonationLevel)
  22. {
  23. this.token = new SspiSecurityToken(impersonationLevel, allowNtlm, credential);
  24. }
  25. // service side ctor
  26. public SspiSecurityTokenProvider(NetworkCredential credential, bool extractGroupsForWindowsAccounts, bool allowUnauthenticatedCallers)
  27. {
  28. this.token = new SspiSecurityToken(credential, extractGroupsForWindowsAccounts, allowUnauthenticatedCallers);
  29. }
  30. protected override SecurityToken GetTokenCore(TimeSpan timeout)
  31. {
  32. return this.token;
  33. }
  34. }
  35. }