非英语操作系统中Everyone组的名称

Sam*_*ron 7 c# globalization

我们的创建方式存在问题Mutex.问题在于:

MutexAccessRule rule = new MutexAccessRule("Everyone", MutexRights.FullControl, AccessControlType.Allow);
Run Code Online (Sandbox Code Playgroud)

硬编码的"Everyone"字符串仅适用于英语操作系统,我们如何更改此行以使其适用于所有语言?

Sam*_*ron 12

谷歌今天有所帮助:

看起来这会有所帮助

此代码解决了此问题:

  SecurityIdentifier sid = new SecurityIdentifier(WellKnownSidType.WorldSid, null);
  MutexAccessRule rule = new MutexAccessRule(sid, MutexRights.FullControl, AccessControlType.Allow);
Run Code Online (Sandbox Code Playgroud)

VB:

Dim sid As System.Security.Principal.SecurityIdentifier = New System.Security.Principal.SecurityIdentifier(System.Security.Principal.WellKnownSidType.WorldSid, Nothing)
Dim rule As System.Security.AccessControl.MutexAccessRule = New System.Security.AccessControl.MutexAccessRule(sid, System.Security.AccessControl.MutexRights.FullControl, System.Security.AccessControl.AccessControlType.Allow)
Run Code Online (Sandbox Code Playgroud)