C# MemoryMappedFile进程安全性

C# MemoryMappedFile进程安全性,c#,memory-mapped-files,inter-process-communicat,security-identifier,C#,Memory Mapped Files,Inter Process Communicat,Security Identifier,我试图创建一个MemoryMappedFile,并确保只有某些进程可以访问共享内存。上面说: 内存映射文件安全性允许您自定义谁或哪个进程可以访问资源,这在您希望保护敏感信息且不希望其他进程更改文件映射时非常重要 但是,我不知道如何引用进程,只知道引用用户和用户组的内置SID。这是可行的,但不是我想要的: MemoryMappedFileSecurity mmfs = new MemoryMappedFileSecurity(); SecurityIdentifier si = new Secur

我试图创建一个MemoryMappedFile,并确保只有某些进程可以访问共享内存。上面说:

内存映射文件安全性允许您自定义谁或哪个进程可以访问资源,这在您希望保护敏感信息且不希望其他进程更改文件映射时非常重要

但是,我不知道如何引用进程,只知道引用用户和用户组的内置SID。这是可行的,但不是我想要的:

MemoryMappedFileSecurity mmfs = new MemoryMappedFileSecurity();
SecurityIdentifier si = new SecurityIdentifier(WellKnownSidType.LocalServiceSid, null);
AccessRule<MemoryMappedFileRights> ar = new AccessRule<MemoryMappedFileRights>(si, MemoryMappedFileRights.ReadWrite, AccessControlType.Allow);
mmfs.AddAccessRule(ar);
MemoryMappedFile mmf = MemoryMappedFile.CreateNew("testmmf", 134217728, MemoryMappedFileAccess.ReadWrite, MemoryMappedFileOptions.None, mmfs, System.IO.HandleInheritability.None);
MemoryMappedFileSecurity mmfs=newmemorymappedfilesecurity();
SecurityIdentifier si=新的SecurityIdentifier(WellKnownSidType.LocalServiceSid,null);
AccessRule ar=新的AccessRule(si,MemoryMappedFileRights.ReadWrite,AccessControlType.Allow);
mmfs.AddAccessRule(ar);
MemoryMappedFile mmf=MemoryMappedFile.CreateNew(“testmmf”,134217728,MemoryMappedFileAccess.ReadWrite,MemoryMappedFileOptions.None,mmfs,System.IO.HandleInheritability.None);

如何引用我的流程?我的进程是否有SID?我完全没有什么概念?

进程没有SID,但进程的所有者有。过程本身由PID标识。SID链接到Window的安全原则。如果是这样,我如何在MemoryMappedFileSecurity对象中引用PID?我找不到任何地方可以这样做。不幸的是,那部分我不知道。我不太确定你能不能。