void IClientChannelSink.ProcessMessage(IMessage msg, ITransportHeaders requestHeaders, System.IO.Stream requestStream, out ITransportHeaders responseHeaders, out System.IO.Stream responseStream) { lock (authHelper) { if (!authHelper.HaveNonce) { System.Runtime.Remoting.Channels.TransportHeaders authHeaders = new TransportHeaders(); System.IO.MemoryStream authStream = new System.IO.MemoryStream(); authHelper.SetRequest(authHeaders); ITransportHeaders authedHeaders; System.IO.Stream authedStream; nextSink.ProcessMessage(msg, authHeaders, authStream, out authedHeaders, out authedStream); //System.IO.MemoryStream memStream = BaseHelper.ToMemoryStream(authedStream); //char[] chars = new System.Text.UTF8Encoding().GetChars(memStream.ToArray(), 0, (int)memStream.Length); authHelper.SetNonce(authedHeaders); } } authHelper.Authenticate(requestHeaders, ref requestStream); nextSink.ProcessMessage(msg, requestHeaders, requestStream, out responseHeaders, out responseStream); }