<PackageReference Include="System.ServiceModel.Primitives" Version="6.1.0" />

System.ServiceModel.Security.SecurityProtocolFactory

namespace System.ServiceModel.Security { internal abstract class SecurityProtocolFactory : ISecurityCommunicationObject { protected WrapperSecurityCommunicationObject CommunicationObject { get; } public bool ActAsInitiator { get; } public BufferManager StreamBufferManager { get; set; } public ExtendedProtectionPolicy ExtendedProtectionPolicy { get; set; } public bool AddTimestamp { get; set; } public bool DetectReplays { get; set; } public SecurityAlgorithmSuite IncomingAlgorithmSuite { get; set; } public int MaxCachedNonces { get; set; } public TimeSpan MaxClockSkew { get; set; } public NonceCache NonceCache { get; set; } public SecurityAlgorithmSuite OutgoingAlgorithmSuite { get; set; } public TimeSpan ReplayWindow { get; set; } public SecurityBindingElement SecurityBindingElement { get; set; } public SecurityTokenManager SecurityTokenManager { get; set; } public virtual bool SupportsDuplex { get; } public SecurityHeaderLayout SecurityHeaderLayout { get; set; } public virtual bool SupportsReplayDetection { get; } public virtual bool SupportsRequestReply { get; } public SecurityStandardsManager StandardsManager { get; set; } public TimeSpan TimestampValidityDuration { get; set; } public TimeSpan DefaultOpenTimeout { get; } public TimeSpan DefaultCloseTimeout { get; } protected SecurityProtocolFactory(); public void OnClosed(); public void OnClosing(); public void OnFaulted(); public void OnOpened(); public void OnOpening(); public virtual void OnAbort(); public virtual Task OnCloseAsync(TimeSpan timeout); public SecurityProtocol CreateSecurityProtocol(EndpointAddress target, Uri via, object listenerSecurityState, bool isReturnLegSecurityRequired, TimeSpan timeout); public virtual T GetProperty<T>(); protected abstract SecurityProtocol OnCreateSecurityProtocol(EndpointAddress target, Uri via, object listenerSecurityState, TimeSpan timeout); public virtual Task OnOpenAsync(TimeSpan timeout); public Task OpenAsync(bool actAsInitiator, TimeSpan timeout); public Task CloseAsync(bool aborted, TimeSpan timeout); } }