private static System.IO.Pipes.NamedPipeServerStream GetPipeServer(string aPipeName, System.IO.Pipes.PipeDirection aDir)
        {
            //Get "Everyone" for localized OS: http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/0737f978-a998-453d-9a6a-c348285d7ea3/
            System.Security.Principal.SecurityIdentifier sid = new System.Security.Principal.SecurityIdentifier(System.Security.Principal.WellKnownSidType.WorldSid, null);
            System.Security.Principal.NTAccount acct = sid.Translate(typeof(System.Security.Principal.NTAccount)) as System.Security.Principal.NTAccount;

            System.IO.Pipes.PipeSecurity ps = new System.IO.Pipes.PipeSecurity();
            System.IO.Pipes.PipeAccessRule par = new System.IO.Pipes.PipeAccessRule(acct,
                System.IO.Pipes.PipeAccessRights.ReadWrite,
                System.Security.AccessControl.AccessControlType.Allow);
            ps.AddAccessRule(par);
            return new System.IO.Pipes.NamedPipeServerStream(aPipeName, aDir, 1,
                System.IO.Pipes.PipeTransmissionMode.Message,
                System.IO.Pipes.PipeOptions.None, 4096, 4096, ps);
        }
Example #2
0
        public MyServer(string pipeName)
        {
            var rule     = new System.IO.Pipes.PipeAccessRule("Everyone", System.IO.Pipes.PipeAccessRights.FullControl, System.Security.AccessControl.AccessControlType.Allow);
            var security = new System.IO.Pipes.PipeSecurity();

            security.AddAccessRule(rule);
            var server = new NamedPipeServer <MyMessage>(pipeName, security);

            server.ClientConnected    += OnClientConnected;
            server.ClientDisconnected += OnClientDisconnected;
            server.ClientMessage      += OnClientMessage;
            server.Error += OnError;
            server.Start();
            while (KeepRunning)
            {
                // Do nothing - wait for user to press 'q' key
            }
            server.Stop();
        }
Example #3
0
 public void SetAccessRule(System.IO.Pipes.PipeAccessRule rule)
 {
 }
Example #4
0
 public void RemoveAccessRuleSpecific(System.IO.Pipes.PipeAccessRule rule)
 {
 }
Example #5
0
 public bool RemoveAccessRule(System.IO.Pipes.PipeAccessRule rule)
 {
     throw null;
 }
Example #6
0
            private System.IO.Pipes.NamedPipeServerStream GetPipeServer(System.IO.Pipes.PipeDirection aDir)
            {
                System.IO.Pipes.PipeSecurity ps = new System.IO.Pipes.PipeSecurity();
                System.IO.Pipes.PipeAccessRule par = new System.IO.Pipes.PipeAccessRule("Everyone",
                    System.IO.Pipes.PipeAccessRights.ReadWrite,
                    System.Security.AccessControl.AccessControlType.Allow);
                ps.AddAccessRule(par);

                return new System.IO.Pipes.NamedPipeServerStream("XervBackup.Pipe." + aDir.ToString(),
                    aDir, 1,
                    System.IO.Pipes.PipeTransmissionMode.Message,
                    System.IO.Pipes.PipeOptions.Asynchronous, 4096, 4096, ps);
            }
 public bool RemoveAccessRule(System.IO.Pipes.PipeAccessRule rule)
 {
     return(default(bool));
 }