public CommServer(ICommServerImpl callbacks) : base(callbacks) { int numsecretbytes = 16; byte[] secretbytes = new byte[numsecretbytes]; RNGCryptoServiceProvider rnd = new RNGCryptoServiceProvider(); int i; rnd.GetBytes(secretbytes); secret = ""; for (i = 0; i < numsecretbytes; i++) { secret = secret + String.Format("{0:x2}", secretbytes[i]); } PipeSecurity sec = new PipeSecurity(); sec.AddAccessRule( new PipeAccessRule( new System.Security.Principal.SecurityIdentifier( System.Security.Principal.WellKnownSidType.WorldSid, null), PipeAccessRights.ReadWrite, System.Security.AccessControl.AccessControlType.Allow)); sec.AddAccessRule(new PipeAccessRule(System.Security.Principal.WindowsIdentity.GetCurrent().Name, PipeAccessRights.FullControl, System.Security.AccessControl.AccessControlType.Allow)); Pipe = new NamedPipeServerStream(PIPENAME, PipeDirection.InOut, 1, PipeTransmissionMode.Byte, PipeOptions.Asynchronous, 1024 * 1024, 1024 * 1024, sec); SetPipe(Pipe); this.callbacks = callbacks; Pipe.BeginWaitForConnection(HandleConnected, this); }
public CommServer(ICommServerImpl callbacks) : base(callbacks) { int numsecretbytes=16; byte[] secretbytes = new byte[numsecretbytes]; RNGCryptoServiceProvider rnd = new RNGCryptoServiceProvider(); int i; rnd.GetBytes(secretbytes); secret=""; for (i = 0; i < numsecretbytes; i++) { secret = secret + String.Format("{0:x2}", secretbytes[i]); } PipeSecurity sec = new PipeSecurity(); sec.AddAccessRule( new PipeAccessRule( new System.Security.Principal.SecurityIdentifier( System.Security.Principal.WellKnownSidType.WorldSid, null), PipeAccessRights.ReadWrite, System.Security.AccessControl.AccessControlType.Allow)); sec.AddAccessRule(new PipeAccessRule(System.Security.Principal.WindowsIdentity.GetCurrent().Name, PipeAccessRights.FullControl, System.Security.AccessControl.AccessControlType.Allow)); Pipe = new NamedPipeServerStream(PIPENAME, PipeDirection.InOut, 1, PipeTransmissionMode.Byte, PipeOptions.Asynchronous, 1024*1024, 1024*1024, sec); SetPipe(Pipe); this.callbacks = callbacks; Pipe.BeginWaitForConnection(HandleConnected, this); }