我想使用下面的代码获取文件的所有者
File.GetAccessControl(filename).GetOwner(typeof(SecurityIdentifier)).Translate(typeof(NTAccount))
但是,它给了我BUILTIN \ Administrators作为所有者,但我可以在文件资源管理器中看到所有者是Domain \ MyUserName。
为什么会发生这种情况以及如何解决?
编辑: This link解释会发生什么。它与管理员组中的用户创建的文件以及Windows如何处理这些文件的所有者有关。
答案 0 :(得分:1)
我能够通过此获得文件的实际所有者...不确定这是否是您需要的。
System.IO.FileInfo Fi = new System.IO.FileInfo(@"path2file");
MessageBox.Show(Fi.GetAccessControl().GetOwner(typeof(System.Security.Principal.SecurityIdentifier)).Translate(typeof(System.Security.Principal.NTAccount)).ToString());