ObjectSecurity.GetOwner 返回组而不是用户

本文关键字:用户 GetOwner 返回 ObjectSecurity | 更新日期: 2023-09-27 17:56:38

我正在尝试确定创建特定文件的用户,如下所示:

string path = "C:''TheFile.dat";
string user = System.IO.File.GetAccessControl(path).GetOwner(typeof(System.Security.Principal.NTAccount)).ToString();

当文件由不是管理员用户组成员的用户创建时,将返回用户的用户名。 但是,当该文件由管理员用户组的成员创建时,将返回"域''管理员"。

谁能想到为什么会发生这种情况以及如何确保返回实际的用户名?

谢谢。

ObjectSecurity.GetOwner 返回组而不是用户

这是操作系统本身的默认行为。刚刚创建了一个新文件并按照:"右键单击>安全选项卡>高级>所有者",您将看到如果您是管理员,则所有者选项卡中将有两个条目。第一个是"管理员",第二个是创建文件的用户。如果这是客户端计算机,这将始终是默认行为。原因是:如果用户是管理员,则他们创建的文件被视为归整个管理员组所有,而不是单个用户。