public void CreatePipes() { try { // close the pipes if already exist; they will be re-created below DeletePipes(); // set the pipes access rights var pipeSecurity = new PipeSecurity(); var pipeAccessRule = new PipeAccessRule(AccountHelper.GetEveryoneGroupName(), PipeAccessRights.ReadWrite, AccessControlType.Allow); pipeSecurity.AddAccessRule(pipeAccessRule); // create the pipes _inputsPipe = new NamedPipeServerStream( "remotesession_" + RemoteSession.Id + "_inputs", PipeDirection.InOut, 1, PipeTransmissionMode.Message, PipeOptions.Asynchronous, InputsPipeBufferSize, InputsPipeBufferSize, pipeSecurity); _updatesPipe = new NamedPipeServerStream( "remotesession_" + RemoteSession.Id + "_updates", PipeDirection.InOut, 1, PipeTransmissionMode.Message, PipeOptions.Asynchronous, UpdatesPipeBufferSize, UpdatesPipeBufferSize, pipeSecurity); // wait for client connection InputsPipe.BeginWaitForConnection(InputsPipeConnected, InputsPipe.GetHashCode()); UpdatesPipe.BeginWaitForConnection(UpdatesPipeConnected, UpdatesPipe.GetHashCode()); } catch (Exception exc) { Trace.TraceError("Failed to create pipes, remote session {0} ({1})", RemoteSession.Id, exc); } }
public void CreatePipes() { try { // close the pipes if already exist; they will be re-created below DeletePipes(); // set the pipes access rights var pipeSecurity = new PipeSecurity(); var pipeAccessRule = new PipeAccessRule(RemoteSession.Manager.Client.GetProcessIdentity(), PipeAccessRights.FullControl, AccessControlType.Allow); pipeSecurity.AddAccessRule(pipeAccessRule); // create the pipes _inputsPipe = new NamedPipeServerStream( "remotesession_" + RemoteSession.Id + "_inputs", PipeDirection.InOut, 1, PipeTransmissionMode.Byte, PipeOptions.Asynchronous, 0, 0, pipeSecurity); _updatesPipe = new NamedPipeServerStream( "remotesession_" + RemoteSession.Id + "_updates", PipeDirection.InOut, 1, PipeTransmissionMode.Byte, PipeOptions.Asynchronous, 0, 0, pipeSecurity); // wait for client connection InputsPipe.BeginWaitForConnection(InputsPipeConnected, InputsPipe); UpdatesPipe.BeginWaitForConnection(UpdatesPipeConnected, UpdatesPipe); } catch (Exception exc) { Trace.TraceError("Failed to create pipes, remote session {0} ({1})", RemoteSession.Id, exc); } }