public SslStreamSecurityUpgradeInitiator(SslStreamSecurityUpgradeProvider parent, EndpointAddress remoteAddress, Uri via) : base("application/ssl-tls", remoteAddress, via)
        {
            SecurityTokenResolver resolver;

            this.parent = parent;
            InitiatorServiceModelSecurityTokenRequirement tokenRequirement = new InitiatorServiceModelSecurityTokenRequirement {
                TokenType = SecurityTokenTypes.X509Certificate,
                RequireCryptographicToken = true,
                KeyUsage        = SecurityKeyUsage.Exchange,
                TargetAddress   = remoteAddress,
                Via             = via,
                TransportScheme = this.parent.Scheme
            };

            this.serverCertificateAuthenticator = parent.ClientSecurityTokenManager.CreateSecurityTokenAuthenticator(tokenRequirement, out resolver);
            if (parent.RequireClientCertificate)
            {
                InitiatorServiceModelSecurityTokenRequirement requirement2 = new InitiatorServiceModelSecurityTokenRequirement {
                    TokenType = SecurityTokenTypes.X509Certificate,
                    RequireCryptographicToken = true,
                    KeyUsage        = SecurityKeyUsage.Signature,
                    TargetAddress   = remoteAddress,
                    Via             = via,
                    TransportScheme = this.parent.Scheme
                };
                this.clientCertificateProvider = parent.ClientSecurityTokenManager.CreateSecurityTokenProvider(requirement2);
                if (this.clientCertificateProvider == null)
                {
                    throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(System.ServiceModel.SR.GetString("ClientCredentialsUnableToCreateLocalTokenProvider", new object[] { requirement2 })));
                }
            }
        }
 public SslStreamSecurityUpgradeInitiator(SslStreamSecurityUpgradeProvider parent, EndpointAddress remoteAddress, Uri via) : base("application/ssl-tls", remoteAddress, via)
 {
     SecurityTokenResolver resolver;
     this.parent = parent;
     InitiatorServiceModelSecurityTokenRequirement tokenRequirement = new InitiatorServiceModelSecurityTokenRequirement {
         TokenType = SecurityTokenTypes.X509Certificate,
         RequireCryptographicToken = true,
         KeyUsage = SecurityKeyUsage.Exchange,
         TargetAddress = remoteAddress,
         Via = via,
         TransportScheme = this.parent.Scheme
     };
     this.serverCertificateAuthenticator = parent.ClientSecurityTokenManager.CreateSecurityTokenAuthenticator(tokenRequirement, out resolver);
     if (parent.RequireClientCertificate)
     {
         InitiatorServiceModelSecurityTokenRequirement requirement2 = new InitiatorServiceModelSecurityTokenRequirement {
             TokenType = SecurityTokenTypes.X509Certificate,
             RequireCryptographicToken = true,
             KeyUsage = SecurityKeyUsage.Signature,
             TargetAddress = remoteAddress,
             Via = via,
             TransportScheme = this.parent.Scheme
         };
         this.clientCertificateProvider = parent.ClientSecurityTokenManager.CreateSecurityTokenProvider(requirement2);
         if (this.clientCertificateProvider == null)
         {
             throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(System.ServiceModel.SR.GetString("ClientCredentialsUnableToCreateLocalTokenProvider", new object[] { requirement2 })));
         }
     }
 }
コード例 #3
0
            public OpenAsyncResult(SslStreamSecurityUpgradeProvider parent, TimeSpan timeout, AsyncCallback callback, object state) : base(callback, state)
            {
                this.parent                   = parent;
                this.timeoutHelper            = new TimeoutHelper(timeout);
                this.onOpenTokenAuthenticator = Fx.ThunkCallback(new AsyncCallback(this.OnOpenTokenAuthenticator));
                IAsyncResult result = System.ServiceModel.Security.SecurityUtils.BeginOpenTokenAuthenticatorIfRequired(parent.ClientCertificateAuthenticator, this.timeoutHelper.RemainingTime(), this.onOpenTokenAuthenticator, this);

                if (result.CompletedSynchronously && this.HandleOpenAuthenticatorComplete(result))
                {
                    base.Complete(true);
                }
            }
コード例 #4
0
        public SslStreamSecurityUpgradeInitiator(SslStreamSecurityUpgradeProvider parent,
                                                 EndpointAddress remoteAddress, Uri via)
            : base(FramingUpgradeString.SslOrTls, remoteAddress, via)
        {
            _parent = parent;

            InitiatorServiceModelSecurityTokenRequirement serverCertRequirement = new InitiatorServiceModelSecurityTokenRequirement();

            serverCertRequirement.TokenType = SecurityTokenTypes.X509Certificate;
            serverCertRequirement.RequireCryptographicToken = true;
            serverCertRequirement.KeyUsage        = SecurityKeyUsage.Exchange;
            serverCertRequirement.TargetAddress   = remoteAddress;
            serverCertRequirement.Via             = via;
            serverCertRequirement.TransportScheme = _parent.Scheme;
            serverCertRequirement.PreferSslCertificateAuthenticator = true;

            SecurityTokenResolver dummy;

            _serverCertificateAuthenticator = (parent.ClientSecurityTokenManager.CreateSecurityTokenAuthenticator(serverCertRequirement, out dummy));

            if (parent.RequireClientCertificate)
            {
                InitiatorServiceModelSecurityTokenRequirement clientCertRequirement = new InitiatorServiceModelSecurityTokenRequirement();
                clientCertRequirement.TokenType = SecurityTokenTypes.X509Certificate;
                clientCertRequirement.RequireCryptographicToken = true;
                clientCertRequirement.KeyUsage        = SecurityKeyUsage.Signature;
                clientCertRequirement.TargetAddress   = remoteAddress;
                clientCertRequirement.Via             = via;
                clientCertRequirement.TransportScheme = _parent.Scheme;
                _clientCertificateProvider            = parent.ClientSecurityTokenManager.CreateSecurityTokenProvider(clientCertRequirement);
                if (_clientCertificateProvider == null)
                {
                    throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.Format(SR.ClientCredentialsUnableToCreateLocalTokenProvider, clientCertRequirement)));
                }
            }
        }
コード例 #5
0
 public override StreamUpgradeProvider BuildClientStreamUpgradeProvider(BindingContext context)
 {
     return(SslStreamSecurityUpgradeProvider.CreateClientProvider(this, context));
 }
コード例 #6
0
 public SslStreamSecurityUpgradeAcceptor(SslStreamSecurityUpgradeProvider parent)
     : base(FramingUpgradeString.SslOrTls)
 {
     _parent         = parent;
     _clientSecurity = new SecurityMessageProperty();
 }
 public SslStreamSecurityUpgradeAcceptor(SslStreamSecurityUpgradeProvider parent) : base("application/ssl-tls")
 {
     this.parent         = parent;
     this.clientSecurity = new SecurityMessageProperty();
 }
 public SslStreamSecurityUpgradeAcceptor(SslStreamSecurityUpgradeProvider parent) : base("application/ssl-tls")
 {
     this.parent = parent;
     this.clientSecurity = new SecurityMessageProperty();
 }
コード例 #9
0
 public SslStreamSecurityUpgradeAcceptor(SslStreamSecurityUpgradeProvider source)
 {
     this.source = source;
 }
コード例 #10
0
		public SslStreamSecurityUpgradeAcceptor (SslStreamSecurityUpgradeProvider source)
		{
			this.source = source;
		}