【问题标题】:ObjectSecurity.GetOwner returns group rather than userObjectSecurity.GetOwner 返回组而不是用户
【发布时间】:2011-05-16 10:48:14
【问题描述】:

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

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

当文件由管理员用户组成员的用户创建时,返回用户的用户名。但是,当文件由 Administrators 用户组成员的人创建时,会返回“Domain\Administrators”。

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

谢谢。

【问题讨论】:

标签: c# .net windows-security


【解决方案1】:

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

【讨论】:

  • 那么有没有办法做类似的事情:if(more than one entry){return the last entry}?
猜你喜欢
  • 2021-06-22
  • 1970-01-01
  • 1970-01-01
  • 2021-05-07
  • 1970-01-01
  • 2022-11-24
  • 2020-07-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多