0

我使用的电脑有一个 UNC 文件。我和其他人在一个网络中。其他人都可以通过在地址行 \\file 中打赏来打开文件。

知道我想在 Vs2010 中编写 ac# programm 来监视我使用 Win7 32bit 的文件。如果任何人打开该文件,程序将写入一个有人打开我的文件的日志文件。

我尝试使用 FileSystemWatcher 但这仅查找更改/保存/创建而不是打开。

我读了一些关于“审计”的东西,我可以用这个(审计)来做到这一点(监视我的 unc 文件)。但我试图找出如何在 c# 中使用审计,但我发现不多。

.

所以我的问题:

是否可以用“审计”做我想做的事?

是否有人曾在 c# 中进行过审计,或者有任何人提供链接或 somtihng 来向我展示它在 c# 中的工作原理吗?

制造山姆

抱歉英语不好

4

1 回答 1

1

您可能想要使用Audit Object Access

您必须遵循的步骤:

  1. 本地计算机策略中启用审核对象访问
  2. 为您要关注的对象启用审核。
  3. 在您的应用程序中,使用EventLog.EntryWritten 事件来检测文件打开事件

这是一个简单的示例用法,但是您必须深入研究文档才能根据需要进行捕获和记录:

class Program
{
    public static void Main()
    {

        EventLog myNewLog = new EventLog("Security", ".", "Microsoft Windows security");

        myNewLog.EntryWritten += new EntryWrittenEventHandler(MyOnEntryWritten);
        myNewLog.EnableRaisingEvents = true;

        Console.ReadLine();
    }

    public static async void MyOnEntryWritten(object source, EntryWrittenEventArgs e)
    {
        await Task.Factory.StartNew(() =>
        {
            if (e.Entry.InstanceId == 4656 || e.Entry.InstanceId == 4663)
            {
                Console.WriteLine(e.Entry.Message);
            }
        });
    }
}
于 2013-02-22T12:53:50.910 回答