LaxTimestampFirstModeSecurityHeaderElementInferenceEngine.cs 1.3 KB

123456789101112131415161718192021222324252627282930
  1. //----------------------------------------------------------
  2. // Copyright (c) Microsoft Corporation. All rights reserved.
  3. //------------------------------------------------------------
  4. namespace System.ServiceModel.Security
  5. {
  6. sealed class LaxTimestampFirstModeSecurityHeaderElementInferenceEngine : LaxModeSecurityHeaderElementInferenceEngine
  7. {
  8. static LaxTimestampFirstModeSecurityHeaderElementInferenceEngine instance = new LaxTimestampFirstModeSecurityHeaderElementInferenceEngine();
  9. LaxTimestampFirstModeSecurityHeaderElementInferenceEngine() { }
  10. internal new static LaxTimestampFirstModeSecurityHeaderElementInferenceEngine Instance
  11. {
  12. get { return instance; }
  13. }
  14. public override void MarkElements(ReceiveSecurityHeaderElementManager elementManager, bool messageSecurityMode)
  15. {
  16. for (int position = 1; position < elementManager.Count; position++)
  17. {
  18. if (elementManager.GetElementCategory(position) == ReceiveSecurityHeaderElementCategory.Timestamp)
  19. {
  20. throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new MessageSecurityException(SR.GetString(SR.TimestampMustOccurFirstInSecurityHeaderLayout)));
  21. }
  22. }
  23. base.MarkElements(elementManager, messageSecurityMode);
  24. }
  25. }
  26. }