Именованная труба доступна каждому - PullRequest
0 голосов
/ 12 декабря 2018

Я хочу создать NamedPipe, который будет доступен всем на всех компьютерах в сети.

Вот два типа кода, которые я пробовал, но не работал:

 NamedPipeServerStream pipeServer; 
        try
        {
            PipeSecurity pipeSecurity = new PipeSecurity();
            pipeSecurity.SetAccessRule(new PipeAccessRule(new SecurityIdentifier(WellKnownSidType.WorldSid, null), PipeAccessRights.ReadWrite, AccessControlType.Allow));

            pipeServer =
                new NamedPipeServerStream(
                    "Win7-PC\\testpipe",
                    PipeDirection.InOut,
                    NamedPipeServerStream.MaxAllowedServerInstances,
                    PipeTransmissionMode.Message,
                    PipeOptions.Asynchronous,
                    4096,
                    4096,
                    pipeSecurity, System.IO.HandleInheritability.None);

        }
        catch (Exception ex)
        {
            Console.Write("ERRRRRR");

            throw;
        }

Второй метод:

NamedPipeServerStream pipeServer; 
        try
        {
            PipeSecurity pipeSecurity = new PipeSecurity();
            // allow network access, allow read/write to everyone locally and the owner/creator
            pipeSecurity.SetSecurityDescriptorSddlForm("D:(A;;FA;;;NU)(A;;0x12019f;;;WD)(A;;0x12019f;;;CO)");

             pipeServer =
                new NamedPipeServerStream(
                    "testpipe",
                    PipeDirection.InOut,
                    NamedPipeServerStream.MaxAllowedServerInstances,
                    PipeTransmissionMode.Message,
                    PipeOptions.Asynchronous,
                    4096,
                    4096,
                    pipeSecurity);

        }
        catch (Exception ex)
        {
            Console.Write("ERRRRRR");

            throw;
        }

Один отказывает в доступе (первый метод) во время инициализации сервера, сервер второго метода запускается, но не позволяет никому подключиться к нему.

Пожалуйста, сообщите

...