.net core 如何在.NET Core中设置NamedPipeServerStream的管道安全性

.net core 如何在.NET Core中设置NamedPipeServerStream的管道安全性,.net-core,named-pipes,.net-standard-2.0,.net Core,Named Pipes,.net Standard 2.0,我正在将一个库从.NETFramework 4.6.1移植到.NETStandard2.0。在框架中,NamedPipeServerStream构造函数可以接受一个PipeSecurity参数,但在核心中这不是一个选项。如何在Core中设置NamedPipeServerStream的安全性?显然这是一个已知的问题 . 上一篇文章中提到了一个解决方法,建议使用nuget包,它将公开NamedPipeServerStreamConstructors.New(…),它应该镜像所有完整的.NET Fra

我正在将一个库从.NETFramework 4.6.1移植到.NETStandard2.0。在框架中,
NamedPipeServerStream
构造函数可以接受一个
PipeSecurity
参数,但在核心中这不是一个选项。如何在Core中设置
NamedPipeServerStream的安全性?

显然这是一个已知的问题 . 上一篇文章中提到了一个解决方法,建议使用nuget包,它将公开
NamedPipeServerStreamConstructors.New(…)
,它应该镜像所有完整的.NET Framework构造函数的行为

遵循nuget的

using System.IO.Pipes;

var pipeSecurity = new PipeSecurity();
pipeSecurity.AddAccessRule(new PipeAccessRule(new SecurityIdentifier(WellKnownSidType.BuiltinUsersSid, null), PipeAccessRights.ReadWrite, AccessControlType.Allow));

using var serverStream = NamedPipeServerStreamConstructors.New(pipeName, PipeDirection.InOut, 1, PipeTransmissionMode.Byte, PipeOptions.Asynchronous | PipeOptions.WriteThrough, 0, 0, pipeSecurity);