File: System\ServiceModel\Security\TransportSecurityProtocolFactory.cs
Project: ndp\cdf\src\WCF\ServiceModel\System.ServiceModel.csproj (System.ServiceModel)
//----------------------------------------------------------
// Copyright (c) Microsoft Corporation.  All rights reserved.
//------------------------------------------------------------
 
namespace System.ServiceModel.Security
{
    // Note that this protocol and other protocls represented by its
    // subclasses rely on transport security to provide message
    // integrity, confidentiality and request-reply correlation.  SOAP
    // level security features are add-ons to support custom tokens,
    // and do not have the responsibility to protect specific exchange
    // patterns.  So, thie protocol return true to both requst-reply
    // support as well as duplex support.
    class TransportSecurityProtocolFactory : SecurityProtocolFactory
    {
        public TransportSecurityProtocolFactory()
            : base()
        {
        }
 
        internal TransportSecurityProtocolFactory(TransportSecurityProtocolFactory factory)
            : base(factory)
        {
        }
 
        public override bool SupportsDuplex
        {
            get
            {
                return true;
            }
        }
 
        public override bool SupportsReplayDetection
        {
            get
            {
                return false;
            }
        }
 
        protected override SecurityProtocol OnCreateSecurityProtocol(EndpointAddress target, Uri via, object listenerSecurityState, TimeSpan timeout)
        {
            return new TransportSecurityProtocol(this, target, via);
        }
    }
}