Ignore:
Timestamp:
11/14/2009 6:27:27 AM (3 years ago)
Author:
lowjoel
Message:

Allow users to control an elevated instance of Eraser from the Explorer context menu.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/eraser6/Eraser.Manager/RemoteExecutor.cs

    r1249 r1317  
    3030using System.Runtime.Serialization; 
    3131using System.Runtime.Serialization.Formatters.Binary; 
     32using System.Security.Principal; 
     33using System.Security.AccessControl; 
    3234 
    3335namespace Eraser.Manager 
     
    8991        public static readonly string ServerName = 
    9092            "Eraser-FB6C5A7D-E47F-475f-ABA4-58F4D24BB67E-RemoteExecutor-" + 
    91             System.Security.Principal.WindowsIdentity.GetCurrent().User.ToString(); 
     93            WindowsIdentity.GetCurrent().User.ToString(); 
    9294 
    9395        /// <summary> 
     
    136138                    continue; 
    137139 
     140                PipeSecurity security = new PipeSecurity(); 
     141                security.AddAccessRule(new PipeAccessRule( 
     142                    WindowsIdentity.GetCurrent().User, 
     143                    PipeAccessRights.FullControl, AccessControlType.Allow)); 
     144 
    138145                //Otherwise, a new instance can be created. Create it and wait for connections. 
    139146                NamedPipeServerStream server = new NamedPipeServerStream(ServerName, 
    140147                    PipeDirection.InOut, maxServerInstances, PipeTransmissionMode.Message, 
    141                     PipeOptions.Asynchronous); 
     148                    PipeOptions.Asynchronous, 128, 128, security); 
    142149                server.BeginWaitForConnection(EndWaitForConnection, server); 
    143150                 
Note: See TracChangeset for help on using the changeset viewer.