我已经创建了 Windows 服务并使用本地系统帐户运行它。该服务正在读取用户文件并找到它的所有者。在访问文件以查找所有者时,它抛出异常:
方法失败,出现意外错误代码 3。
StackTrace:在 System.Security.AccessControl.NativeObjectSecurity.CreateInternal(ResourceType resourceType, Boolean isContainer, String name, SafeHandle handle, AccessControlSections includeSections, Boolean createByName, ExceptionFromErrorCode exceptionFromErrorCode, Object exceptionContext) 在 System.Security.AccessControl.FileSystemSecurity..ctor(Boolean isContainer, String name, AccessControlSections includeSections, Boolean isDirectory) at System.Security.AccessControl.FileSecurity..ctor(String fileName, AccessControlSections includeSections)
下面是我用来获取文件所有者的示例 C# 代码。
IdentityReference sid = null;
string owner = null;
FileSecurity fileSecurity = File.GetAccessControl(foundFile);
sid = fileSecurity.GetOwner(typeof(SecurityIdentifier));
NTAccount ntAccount = sid.Translate(typeof(NTAccount)) as NTAccount;
owner = ntAccount.Value;
foundFile 包含从目录中读取的文件路径。我浏览了下面的链接,但它似乎与我的问题不同: DirectoryInfo.GetAccessControl 方法总是失败
请帮助我,因为我正在为一群用户面临这个问题,并且它正在为其他用户工作。