| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208 |
- //------------------------------------------------------------------------------
- // Copyright (c) Microsoft Corporation. All rights reserved.
- //------------------------------------------------------------------------------
- namespace System.ServiceModel.Configuration
- {
- using System.ComponentModel;
- using System.Configuration;
- using System.Runtime;
- using System.ServiceModel.Channels;
- using System.ServiceModel.Security;
- public sealed partial class LocalServiceSecuritySettingsElement : ServiceModelConfigurationElement
- {
- public LocalServiceSecuritySettingsElement()
- {
- }
- [ConfigurationProperty(ConfigurationStrings.DetectReplays, DefaultValue = SecurityProtocolFactory.defaultDetectReplays)]
- public bool DetectReplays
- {
- get { return (bool)base[ConfigurationStrings.DetectReplays]; }
- set { base[ConfigurationStrings.DetectReplays] = value; }
- }
- [ConfigurationProperty(ConfigurationStrings.IssuedCookieLifetime, DefaultValue = SpnegoTokenAuthenticator.defaultServerIssuedTokenLifetimeString)]
- [TypeConverter(typeof(TimeSpanOrInfiniteConverter))]
- [ServiceModelTimeSpanValidator(MinValueString = ConfigurationStrings.TimeSpanZero)]
- public TimeSpan IssuedCookieLifetime
- {
- get { return (TimeSpan)base[ConfigurationStrings.IssuedCookieLifetime]; }
- set { base[ConfigurationStrings.IssuedCookieLifetime] = value; }
- }
- [ConfigurationProperty(ConfigurationStrings.MaxStatefulNegotiations, DefaultValue = SpnegoTokenAuthenticator.defaultServerMaxActiveNegotiations)]
- [IntegerValidator(MinValue = 0)]
- public int MaxStatefulNegotiations
- {
- get { return (int)base[ConfigurationStrings.MaxStatefulNegotiations]; }
- set { base[ConfigurationStrings.MaxStatefulNegotiations] = value; }
- }
- [ConfigurationProperty(ConfigurationStrings.ReplayCacheSize, DefaultValue = SecurityProtocolFactory.defaultMaxCachedNonces)]
- [IntegerValidator(MinValue = 1)]
- public int ReplayCacheSize
- {
- get { return (int)base[ConfigurationStrings.ReplayCacheSize]; }
- set { base[ConfigurationStrings.ReplayCacheSize] = value; }
- }
- [ConfigurationProperty(ConfigurationStrings.MaxClockSkew, DefaultValue = SecurityProtocolFactory.defaultMaxClockSkewString)]
- [TypeConverter(typeof(TimeSpanOrInfiniteConverter))]
- [ServiceModelTimeSpanValidator(MinValueString = ConfigurationStrings.TimeSpanZero)]
- public TimeSpan MaxClockSkew
- {
- get { return (TimeSpan)base[ConfigurationStrings.MaxClockSkew]; }
- set { base[ConfigurationStrings.MaxClockSkew] = value; }
- }
- [ConfigurationProperty(ConfigurationStrings.NegotiationTimeout, DefaultValue = SpnegoTokenAuthenticator.defaultServerMaxNegotiationLifetimeString)]
- [TypeConverter(typeof(TimeSpanOrInfiniteConverter))]
- [ServiceModelTimeSpanValidator(MinValueString = ConfigurationStrings.TimeSpanZero)]
- public TimeSpan NegotiationTimeout
- {
- get { return (TimeSpan)base[ConfigurationStrings.NegotiationTimeout]; }
- set { base[ConfigurationStrings.NegotiationTimeout] = value; }
- }
- [ConfigurationProperty(ConfigurationStrings.ReplayWindow, DefaultValue = SecurityProtocolFactory.defaultReplayWindowString)]
- [TypeConverter(typeof(TimeSpanOrInfiniteConverter))]
- [ServiceModelTimeSpanValidator(MinValueString = ConfigurationStrings.TimeSpanZero)]
- public TimeSpan ReplayWindow
- {
- get { return (TimeSpan)base[ConfigurationStrings.ReplayWindow]; }
- set { base[ConfigurationStrings.ReplayWindow] = value; }
- }
- [ConfigurationProperty(ConfigurationStrings.InactivityTimeout, DefaultValue = SecuritySessionServerSettings.defaultInactivityTimeoutString)]
- [TypeConverter(typeof(TimeSpanOrInfiniteConverter))]
- [ServiceModelTimeSpanValidator(MinValueString = ConfigurationStrings.TimeSpanZero)]
- public TimeSpan InactivityTimeout
- {
- get { return (TimeSpan)base[ConfigurationStrings.InactivityTimeout]; }
- set { base[ConfigurationStrings.InactivityTimeout] = value; }
- }
- [ConfigurationProperty(ConfigurationStrings.SessionKeyRenewalInterval, DefaultValue = SecuritySessionServerSettings.defaultKeyRenewalIntervalString)]
- [TypeConverter(typeof(TimeSpanOrInfiniteConverter))]
- [ServiceModelTimeSpanValidator(MinValueString = ConfigurationStrings.TimeSpanZero)]
- public TimeSpan SessionKeyRenewalInterval
- {
- get { return (TimeSpan)base[ConfigurationStrings.SessionKeyRenewalInterval]; }
- set { base[ConfigurationStrings.SessionKeyRenewalInterval] = value; }
- }
- [ConfigurationProperty(ConfigurationStrings.SessionKeyRolloverInterval, DefaultValue = SecuritySessionServerSettings.defaultKeyRolloverIntervalString)]
- [TypeConverter(typeof(TimeSpanOrInfiniteConverter))]
- [ServiceModelTimeSpanValidator(MinValueString = ConfigurationStrings.TimeSpanZero)]
- public TimeSpan SessionKeyRolloverInterval
- {
- get { return (TimeSpan)base[ConfigurationStrings.SessionKeyRolloverInterval]; }
- set { base[ConfigurationStrings.SessionKeyRolloverInterval] = value; }
- }
- [ConfigurationProperty(ConfigurationStrings.ReconnectTransportOnFailure, DefaultValue = SecuritySessionServerSettings.defaultTolerateTransportFailures)]
- public bool ReconnectTransportOnFailure
- {
- get { return (bool)base[ConfigurationStrings.ReconnectTransportOnFailure]; }
- set { base[ConfigurationStrings.ReconnectTransportOnFailure] = value; }
- }
- [ConfigurationProperty(ConfigurationStrings.MaxPendingSessions, DefaultValue = SecuritySessionServerSettings.defaultMaximumPendingSessions)]
- [IntegerValidator(MinValue = 1)]
- public int MaxPendingSessions
- {
- get { return (int)base[ConfigurationStrings.MaxPendingSessions]; }
- set { base[ConfigurationStrings.MaxPendingSessions] = value; }
- }
- [ConfigurationProperty(ConfigurationStrings.MaxCachedCookies, DefaultValue = SpnegoTokenAuthenticator.defaultServerMaxCachedTokens)]
- [IntegerValidator(MinValue = 0)]
- public int MaxCachedCookies
- {
- get { return (int)base[ConfigurationStrings.MaxCachedCookies]; }
- set { base[ConfigurationStrings.MaxCachedCookies] = value; }
- }
- [ConfigurationProperty(ConfigurationStrings.TimestampValidityDuration, DefaultValue = SecurityProtocolFactory.defaultTimestampValidityDurationString)]
- [TypeConverter(typeof(TimeSpanOrInfiniteConverter))]
- [ServiceModelTimeSpanValidator(MinValueString = ConfigurationStrings.TimeSpanZero)]
- public TimeSpan TimestampValidityDuration
- {
- get { return (TimeSpan)base[ConfigurationStrings.TimestampValidityDuration]; }
- set { base[ConfigurationStrings.TimestampValidityDuration] = value; }
- }
- internal void ApplyConfiguration(LocalServiceSecuritySettings settings)
- {
- if (settings == null)
- {
- throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("settings");
- }
- if (PropertyValueOrigin.Default != this.ElementInformation.Properties[ConfigurationStrings.DetectReplays].ValueOrigin)
- settings.DetectReplays = this.DetectReplays;
- settings.IssuedCookieLifetime = this.IssuedCookieLifetime;
- settings.MaxClockSkew = this.MaxClockSkew;
- settings.MaxPendingSessions = this.MaxPendingSessions;
- settings.MaxStatefulNegotiations = this.MaxStatefulNegotiations;
- settings.NegotiationTimeout = this.NegotiationTimeout;
- settings.ReconnectTransportOnFailure = this.ReconnectTransportOnFailure;
- settings.ReplayCacheSize = this.ReplayCacheSize;
- settings.ReplayWindow = this.ReplayWindow;
- settings.SessionKeyRenewalInterval = this.SessionKeyRenewalInterval;
- settings.SessionKeyRolloverInterval = this.SessionKeyRolloverInterval;
- settings.InactivityTimeout = this.InactivityTimeout;
- settings.TimestampValidityDuration = this.TimestampValidityDuration;
- settings.MaxCachedCookies = this.MaxCachedCookies;
- }
- internal void InitializeFrom(LocalServiceSecuritySettings settings)
- {
- if (settings == null)
- {
- throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("settings");
- }
- this.DetectReplays = settings.DetectReplays; // can't use default value optimization here because runtime default doesn't match config default
- SetPropertyValueIfNotDefaultValue(ConfigurationStrings.IssuedCookieLifetime, settings.IssuedCookieLifetime);
- SetPropertyValueIfNotDefaultValue(ConfigurationStrings.MaxClockSkew, settings.MaxClockSkew);
- SetPropertyValueIfNotDefaultValue(ConfigurationStrings.MaxPendingSessions, settings.MaxPendingSessions);
- SetPropertyValueIfNotDefaultValue(ConfigurationStrings.MaxStatefulNegotiations, settings.MaxStatefulNegotiations);
- SetPropertyValueIfNotDefaultValue(ConfigurationStrings.NegotiationTimeout, settings.NegotiationTimeout);
- SetPropertyValueIfNotDefaultValue(ConfigurationStrings.ReconnectTransportOnFailure, settings.ReconnectTransportOnFailure);
- SetPropertyValueIfNotDefaultValue(ConfigurationStrings.ReplayCacheSize, settings.ReplayCacheSize);
- SetPropertyValueIfNotDefaultValue(ConfigurationStrings.ReplayWindow, settings.ReplayWindow);
- SetPropertyValueIfNotDefaultValue(ConfigurationStrings.SessionKeyRenewalInterval, settings.SessionKeyRenewalInterval);
- SetPropertyValueIfNotDefaultValue(ConfigurationStrings.SessionKeyRolloverInterval, settings.SessionKeyRolloverInterval);
- SetPropertyValueIfNotDefaultValue(ConfigurationStrings.InactivityTimeout, settings.InactivityTimeout);
- SetPropertyValueIfNotDefaultValue(ConfigurationStrings.TimestampValidityDuration, settings.TimestampValidityDuration);
- SetPropertyValueIfNotDefaultValue(ConfigurationStrings.MaxCachedCookies, settings.MaxCachedCookies);
- }
- internal void CopyFrom(LocalServiceSecuritySettingsElement source)
- {
- if (source == null)
- {
- throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("source");
- }
- if (PropertyValueOrigin.Default != source.ElementInformation.Properties[ConfigurationStrings.DetectReplays].ValueOrigin)
- this.DetectReplays = source.DetectReplays;
- this.IssuedCookieLifetime = source.IssuedCookieLifetime;
- this.MaxClockSkew = source.MaxClockSkew;
- this.MaxPendingSessions = source.MaxPendingSessions;
- this.MaxStatefulNegotiations = source.MaxStatefulNegotiations;
- this.NegotiationTimeout = source.NegotiationTimeout;
- this.ReconnectTransportOnFailure = source.ReconnectTransportOnFailure;
- this.ReplayCacheSize = source.ReplayCacheSize;
- this.ReplayWindow = source.ReplayWindow;
- this.SessionKeyRenewalInterval = source.SessionKeyRenewalInterval;
- this.SessionKeyRolloverInterval = source.SessionKeyRolloverInterval;
- this.InactivityTimeout = source.InactivityTimeout;
- this.TimestampValidityDuration = source.TimestampValidityDuration;
- this.MaxCachedCookies = source.MaxCachedCookies;
- }
- }
- }
|