我已经尝试了以下内容:
string FileLocation = @"C:test.txt"; FileInfo droppedFile = new FileInfo(FileLocation); FileSecurity fileSecurity = droppedFile.GetAccessControl(); IdentityReference identityReference = fileSecurity.Getowner(typeof(NTAccount)); string userName = identityReference.Value; Console.WriteLine(userName);
所有这些返回是“BUILTIN Administrators”
我在这里做错了什么? 因为当我在资源pipe理器中查看C:,所有者显示正确的用户名,当我执行上面的代码时,它返回“BUILTIN Administrators”
我如何获得所有进程的打开句柄集
MSBuild“sgen.exe”丢失
如何创build一个大的图标托盘?
dynamic添加comboBox中的项目和用户添加的项目应该是永久性的,而不使用数据库,是可能的?
使用c#在远程Windows服务器上创build本地用户
任何帮助赞赏。
交易登记performance问题
如何在Windows 8.1中安装WPF Performance Suite?
在Windows 8上使用简单的Windows窗体/ WPF应用程序是否适用于平板电脑?
如果用户是管理员,则他们创建的文件被认为是由整个管理员组拥有,而不是由个人用户拥有。
您可以在资源管理器的属性对话框中看到相同的行为。 令人烦恼的是,我不认为有任何解决方法,除了不让用户管理员。
编辑: 本Technet文章更详细地解释了这种行为。 理由是Windows将所有管理员视为一个单一的实体; 系统上的任何管理员都可以执行其他管理员可以执行的操作。
如果一个管理员拥有一个文件 – 该文件的所有者被授予对该文件的特权访问权 – 那么所有其他管理员也必须拥有该文件。
更新:我错了,有一个文件对象的所有者描述符! (我的头在哪里)。 看看这个MSDN文章 。
可能是因为文件对象没有定义创建者或所有者,而是由系统本身(内置管理员)拥有。 “组或用户名”列表仅指定可以访问该文件的组和用户的列表,但不具体指定创建者。
最好你可以做的是遍历“组或用户名”的列表,并最好地猜测哪一个创建者。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。