gpt4 book ai didi

vb.net - 网络服务权限(多语言)

转载 作者:行者123 更新时间:2023-12-05 00:41:59 37 4
gpt4 key购买 nike

所以,我正在做一个安装项目,全部用 VB.NET 编写,我需要授予 NetworkService 帐户对某个文件夹的权限。

以下代码完美运行(Windows 7 - en-US):

Dim dInfo As New DirectoryInfo("C:\FolderOrFileToGivePermission")
Dim dSecurity As DirectorySecurity = dInfo.GetAccessControl()
dSecurity.AddAccessRule(New FileSystemAccessRule("NETWORK SERVICE", FileSystemRights.FullControl, AccessControlType.Allow))
dInfo.SetAccessControl(dSecurity)

当我在 Windows 7、Vista 或 XP( all in PT-BR )上尝试相同的代码时,问题开始了,我发现没有“网络服务”,正确的名称是“Serviço de重新”。

我需要获取此名称才能向正确的用户授予权限。

经过对所有3个操作系统的大量调查,我发现用户的ID是:“S-1-5-20”,他在注册表中的路径是:Computer\HKEY_USERS\S-1-5-20
以及它的默认文件夹:C:\Windows\ServiceProfiles\NetworkService

但是我仍然没有找到实际的“可本地化”名称,我需要它是动态的,因为这个系统将安装在很多不同的国家(不同的机器和文化)。

提前致谢。

最佳答案

使用 System.Security.Principal.WellKnownSidType枚举:

SecurityIdentifier networkService = new SecurityIdentifier(
WellKnownSidType.NetworkServiceSid, null);

FileSystemAccessRule rule = new FileSystemAccessRule(
networkService, FileSystemRights.FullControl, AccessControlType.Allow);

关于vb.net - 网络服务权限(多语言),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2545583/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com