示例#1
0
 public override bool TryReceiveRequest(TimeSpan timeout, out RequestContext context)
 {
     if (!inner.TryReceiveRequest(timeout, out context))
     {
         return(false);
     }
     context = new SecurityRequestContext(this, context);
     return(true);
 }
示例#2
0
		public override bool TryReceiveRequest (TimeSpan timeout, out RequestContext context)
		{
			if (inner.TryReceiveRequest (timeout, out context)) {
				context = Inspect (context);
				return true;
			}
			context = null;
			return false;
		}
示例#3
0
        internal static RequestContext HelpReceiveRequest(IReplyChannel channel, TimeSpan timeout)
        {
            RequestContext context;

            if (!channel.TryReceiveRequest(timeout, out context))
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(CreateReceiveRequestTimedOutException(channel, timeout));
            }
            return(context);
        }
示例#4
0
        public bool TryReceiveRequest(TimeSpan timeout, out RequestContext context)
        {
            var retVal = _innerChannel.TryReceiveRequest(timeout, out context);

            if (retVal && context is not null)
            {
                context = WrapRequestContext(context);
            }
            return(retVal);
        }
示例#5
0
        internal static RequestContext HelpReceiveRequest(IReplyChannel channel, TimeSpan timeout)
        {
            RequestContext requestContext;

            if (!channel.TryReceiveRequest(timeout, out requestContext))
            {
                throw Microsoft.ServiceBus.Diagnostics.DiagnosticUtility.ExceptionUtility.ThrowHelperError(Microsoft.ServiceBus.Channels.ReplyChannel.CreateReceiveRequestTimedOutException(channel, timeout));
            }
            return(requestContext);
        }
        public bool TryReceiveRequest(TimeSpan timeout, out RequestContext context)
        {
            bool requestAvailable =
                innerReplyChannel.TryReceiveRequest(timeout, out context);

            if (requestAvailable)
            {
                // Read the context id from the incoming message.
                ReadContextId(context.RequestMessage);
            }

            return(requestAvailable);
        }
        private static RequestContext HelpReceiveRequest(IReplyChannel channel, TimeSpan timeout)
        {
            RequestContext requestContext;

            if (channel.TryReceiveRequest(timeout, out requestContext))
            {
                return(requestContext);
            }
            else
            {
                throw FxTrace.Exception.AsError(UdpReplyChannel.CreateReceiveRequestTimedOutException(channel, timeout));
            }
        }
示例#8
0
        private void BasicChannelTestB(bool customBinding)
        {
            IChannelListener <IReplyChannel> listener = null;
            IReplyChannel    channel = null;
            ManualResetEvent done    = new ManualResetEvent(false);
            Thread           t       = null;

            try
            {
                channel = this.OpenChannel(customBinding, out listener);
                Assert.IsNotNull(channel);
                Assert.IsNotNull(listener);

                t = new Thread(BasicChannelTests.SubmitRequests);
                t.Start(done);

                for (var cnt = 0; cnt < TestServiceCommon.Iterations; cnt++)
                {
                    RequestContext context;
                    if (channel.TryReceiveRequest(TestServiceCommon.DefaultHostTimeout, out context))
                    {
                        this.SendResponse(context);
                    }
                    else
                    {
                        Assert.Fail("TryReceiveRequest failed.");
                    }
                }

                channel.Close(TestServiceCommon.DefaultHostTimeout);
                listener.Close(TestServiceCommon.DefaultHostTimeout);
            }
            catch (Exception e)
            {
                channel.Abort();
                listener.Abort();
                Assert.Fail("Unexpected exception: " + e);
            }
            finally
            {
                if (t != null && !done.WaitOne(TestServiceCommon.DefaultHostTimeout))
                {
                    t.Abort();
                }

                done.Dispose();
            }
        }
示例#9
0
        public override bool TryReceiveRequest(TimeSpan timeout, out RequestContext context)
        {
            DateTime start = DateTime.UtcNow;

            if (!inner.TryReceiveRequest(timeout, out context))
            {
                return(false);
            }
            if (context == null)
            {
                return(true);
            }

            Message req, res;

            req = context.RequestMessage;
            switch (req.Headers.Action)
            {
            case Constants.WstIssueAction:
            case Constants.WstIssueReplyAction:
            case Constants.WstRenewAction:
            case Constants.WstCancelAction:
            case Constants.WstValidateAction:
                var support  = Source.SecuritySupport;
                var commAuth = support.TokenAuthenticator as CommunicationSecurityTokenAuthenticator;
                if (commAuth != null)
                {
                    res = commAuth.Communication.ProcessNegotiation(req, timeout - (DateTime.UtcNow - start));
                }
                else
                {
                    throw new MessageSecurityException("This reply channel does not expect incoming WS-Trust requests");
                }

                context.Reply(res, timeout - (DateTime.UtcNow - start));
                context.Close(timeout - (DateTime.UtcNow - start));
                // wait for another incoming message
                return(TryReceiveRequest(timeout - (DateTime.UtcNow - start), out context));

                break;
            }

            context = new SecurityRequestContext(this, context);
            return(true);
        }
示例#10
0
 public bool TryReceive(TimeSpan timeout, out RequestContext requestContext)
 {
     return(_channel.TryReceiveRequest(timeout, out requestContext));
 }
 public bool TryReceiveRequest(TimeSpan timeout, out RequestContext context)
 {
     return(_innerChannel.TryReceiveRequest(timeout, out context));
 }
 public virtual bool TryReceiveRequest(TimeSpan timeout, out RequestContext context)
 {
     return(inner.TryReceiveRequest(timeout, out context));
 }