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

System.ServiceModel.Security.SecurityProtocol

namespace System.ServiceModel.Security { internal abstract class SecurityProtocol : ISecurityCommunicationObject { protected WrapperSecurityCommunicationObject CommunicationObject { get; } public SecurityProtocolFactory SecurityProtocolFactory { get; } public EndpointAddress Target { get; } public Uri Via { get; } public ICollection<SupportingTokenProviderSpecification> ChannelSupportingTokenProviderSpecification { get; } public Dictionary<string, ICollection<SupportingTokenProviderSpecification>> ScopedSupportingTokenProviderSpecification { get; } public ChannelParameterCollection ChannelParameters { get; set; } public TimeSpan DefaultOpenTimeout { get; } public TimeSpan DefaultCloseTimeout { get; } protected SecurityProtocol(SecurityProtocolFactory factory, EndpointAddress target, Uri via); public void OnClosed(); public void OnClosing(); public void OnFaulted(); public void OnOpened(); public void OnOpening(); protected InitiatorServiceModelSecurityTokenRequirement CreateInitiatorSecurityTokenRequirement(); public Task OpenAsync(TimeSpan timeout); public virtual Task OnOpenAsync(TimeSpan timeout); public Task CloseAsync(bool aborted, TimeSpan timeout); public virtual void OnAbort(); public virtual Task OnCloseAsync(TimeSpan timeout); protected void AddSupportingTokenSpecification(SecurityMessageProperty security, IList<SecurityToken> basicTokens, IList<SecurityToken> endorsingTokens, IList<SecurityToken> signedEndorsingTokens, IList<SecurityToken> signedTokens, IDictionary<SecurityToken, ReadOnlyCollection<IAuthorizationPolicy>> tokenPoliciesMapping); protected SendSecurityHeader CreateSendSecurityHeader(Message message, string actor, SecurityProtocolFactory factory); protected SendSecurityHeader CreateSendSecurityHeaderForTransportProtocol(Message message, string actor, SecurityProtocolFactory factory); protected ReadOnlyCollection<SecurityTokenResolver> MergeOutOfBandResolvers(IList<SupportingTokenAuthenticatorSpecification> supportingAuthenticators, ReadOnlyCollection<SecurityTokenResolver> primaryResolvers); protected void AddSupportingTokens(SendSecurityHeader securityHeader, IList<SupportingTokenSpecification> supportingTokens); public abstract Task<Message> SecureOutgoingMessageAsync(Message message, TimeSpan timeout); public virtual Task<(SecurityProtocolCorrelationState, Message)> SecureOutgoingMessageAsync(Message message, TimeSpan timeout, SecurityProtocolCorrelationState correlationState); protected virtual void OnOutgoingMessageSecured(Message securedMessage); protected virtual void OnSecureOutgoingMessageFailure(Message message); public abstract void VerifyIncomingMessage(ref Message message, TimeSpan timeout); public virtual SecurityProtocolCorrelationState VerifyIncomingMessage(ref Message message, TimeSpan timeout, params SecurityProtocolCorrelationState[] correlationStates); protected virtual void OnIncomingMessageVerified(Message verifiedMessage); protected virtual void OnVerifyIncomingMessageFailure(Message message, Exception exception); } }