使用C#确定谁打开了文件

moh*_*ton 14 .net c# file

使用C#如何获取有关打开文件的人的信息?用户名和机器名就足够了.

如果重要,我有Windows工作站通过Samba访问Linux文件服务器上的文件.我需要在工作站上运行的程序中使用此信息.

Chr*_*lor 4

核心 .NET 库没有任何方法来执行此操作。

如果我理解正确的话,您想知道 Windows 工作站 A 中谁在 Linux 文件共享上打开了文件,并且其中一些打开文件的用户可能来自其他 Windows 机器,如果是这种情况,那么您将需要Linux 端有一个服务,您可以查询该服务以将其返回到您的 Windows 工作站。

在本地计算机上,这是可以实现的,但至少您需要与操作系统 API 进行互操作,例如NtQueryInformationFileNtQueryObject(均未正式记录)等。像进程监视器这样的工具会动态安装设备驱动程序以达到它们所做的检查级别,并且只会告诉您哪个用户打开了哪些本地文件句柄。