public SpnegoSecurityTokenAuthenticator(
     ServiceCredentialsSecurityTokenManager manager,
     SecurityTokenRequirement r)
 {
     this.manager = manager;
     comm         = new SpnegoAuthenticatorCommunicationObject(this);
 }
Example #2
0
 public HttpChannelListener(HttpTransportBindingElement source, BindingContext context) : base(context)
 {
     this.Source = source;
     if (Uri != null && source.Scheme != Uri.Scheme)
     {
         throw new ArgumentException(String.Format("Requested listen uri scheme must be {0}, but was {1}.", source.Scheme, Uri.Scheme));
     }
     foreach (BindingElement be in context.Binding.Elements)
     {
         MessageEncodingBindingElement mbe = be as MessageEncodingBindingElement;
         if (mbe != null)
         {
             MessageEncoder = CreateEncoder <TChannel>(mbe);
             break;
         }
     }
     if (MessageEncoder == null)
     {
         MessageEncoder = new TextMessageEncoder(MessageVersion.Default, Encoding.UTF8);
     }
     if (context.BindingParameters.Contains(typeof(ServiceCredentials)))
     {
         SecurityTokenManager = new ServiceCredentialsSecurityTokenManager((ServiceCredentials)context.BindingParameters[typeof(ServiceCredentials)]);
     }
 }
        BuildChannelListenerCore <TChannel> (
            BindingContext context)
        {
            if (InitiatorTokenParameters == null)
            {
                throw new InvalidOperationException("InitiatorTokenParameters must be set before building channel factory.");
            }
            if (RecipientTokenParameters == null)
            {
                throw new InvalidOperationException("RecipientTokenParameters must be set before building channel factory.");
            }

            SetIssuerBindingContextIfRequired(InitiatorTokenParameters, context);
            SetIssuerBindingContextIfRequired(RecipientTokenParameters, context);

            ServiceCredentials cred = context.BindingParameters.Find <ServiceCredentials> ();

            if (cred == null)
            {
                // it happens when there is no ChannelFactory<T>.
                cred = new ServiceCredentials();
            }
            ServiceCredentialsSecurityTokenManager manager      = (ServiceCredentialsSecurityTokenManager)cred.CreateSecurityTokenManager();
            ChannelProtectionRequirements          requirements =
                context.BindingParameters.Find <ChannelProtectionRequirements> ();

            return(new SecurityChannelListener <TChannel> (
                       context.BuildInnerChannelListener <TChannel> (), new RecipientMessageSecurityBindingSupport(GetCapabilities(), manager, requirements)));
        }
 public SslSecurityTokenAuthenticator(
     ServiceCredentialsSecurityTokenManager manager,
     SecurityTokenRequirement r)
 {
     this.manager = manager;
     mutual       = (r.TokenType == ServiceModelSecurityTokenTypes.MutualSslnego);
     comm         = new SslAuthenticatorCommunicationObject(this);
 }
        public HttpChannelListener(HttpTransportBindingElement source, BindingContext context)
            : base(context)
        {
            if (ServiceHostBase.CurrentServiceHostHack != null)
            {
                DispatcherBuilder.ChannelDispatcherSetter = delegate(ChannelDispatcher cd)
                {
                    this.ChannelDispatcher = cd;
                }
            }
            ;

            this.Source = source;
            // The null Uri check looks weird, but it seems the listener can be built without it.
            // See HttpTransportBindingElementTest.BuildChannelListenerWithoutListenUri().
            if (Uri != null && source.Scheme != Uri.Scheme)
            {
                throw new ArgumentException(String.Format("Requested listen uri scheme must be {0}, but was {1}.", source.Scheme, Uri.Scheme));
            }

            foreach (BindingElement be in context.Binding.Elements)
            {
                MessageEncodingBindingElement mbe = be as MessageEncodingBindingElement;
                if (mbe != null)
                {
                    MessageEncoder = CreateEncoder <TChannel> (mbe);
                    break;
                }
            }
            if (MessageEncoder == null)
            {
                MessageEncoder = new TextMessageEncoder(MessageVersion.Default, Encoding.UTF8);
            }

            if (context.BindingParameters.Contains(typeof(ServiceCredentials)))
            {
                SecurityTokenManager = new ServiceCredentialsSecurityTokenManager((ServiceCredentials)context.BindingParameters [typeof(ServiceCredentials)]);
            }
        }
Example #6
0
        protected HttpListenerManager(IChannelListener channelListener, HttpTransportBindingElement source, ServiceCredentialsSecurityTokenManager securityTokenManager, ChannelDispatcher dispatcher)
        {
            this.Dispatcher       = dispatcher;
            this.channel_listener = channelListener;
            Source = source;

            if (securityTokenManager != null)
            {
                var str = new SecurityTokenRequirement()
                {
                    TokenType = SecurityTokenTypes.UserName
                };
                security_token_authenticator = securityTokenManager.CreateSecurityTokenAuthenticator(str, out security_token_resolver);
            }
        }
Example #7
0
 public AspNetListenerManager(IChannelListener channelListener, HttpTransportBindingElement source, ServiceCredentialsSecurityTokenManager securityTokenManager, ChannelDispatcher dispatcher)
     : base(channelListener, source, securityTokenManager, dispatcher)
 {
     http_handler = SvcHttpHandler.Current;
 }
Example #8
0
        public HttpSimpleListenerManager(IChannelListener channelListener, HttpTransportBindingElement source, ServiceCredentialsSecurityTokenManager securityTokenManager, ChannelDispatcher dispatcher)
            : base(channelListener, source, securityTokenManager, dispatcher)
        {
            object key = dispatcher != null ? dispatcher.Host : new object();              // so that HttpChannelListener without ServiceHost is always assigned a new table.

            if (!http_listeners_table.TryGetValue(key, out opened_listeners))
            {
                opened_listeners           = new Dictionary <Uri, HttpListener> ();
                http_listeners_table [key] = opened_listeners;
            }
        }