【问题标题】:FileSystemWatcher running under impersonated userFileSystemWatcher 在模拟用户下运行
【发布时间】:2011-02-03 11:42:52
【问题描述】:

我有一个在本地帐户下运行但需要监视域上的文件夹的 c# winform 应用程序。我正在使用来自here 的稍作修改的代码来复制文件,并且效果很好。可以将类似代码与 FileSystemWatcher 设置模拟一起使用,以便我可以监视域上的文件夹吗?

【问题讨论】:

  • 这应该怎么做?我是否只是在模拟域帐户时创建 FileSystemWatcher 对象?

标签: c# impersonation filesystemwatcher


【解决方案1】:

是的,有一个很好的模拟类 here,在你的项目中包含这个类,而不是简单地将你的 FileSystemWatcher 放在这样的 using 块中:

using ( new Impersonator( "myUsername", "myDomainname", "myPassword" ) )
{
   ...

   <code that executes under the new context>

   ...
}

【讨论】:

  • 我按照您的建议将我的 FileSystemWatcher 的初始化包装在 Impersonator 的 using 块中,它的工作原理就像一个冠军。谢谢。
  • 这确实有效,因为文件句柄是在模拟用户上下文下打开的。即使在模拟被还原后,观察者仍将继续观看。您需要再次模拟才能观看不同的文件。
【解决方案2】:

你可以:

将权限应用于允许非域用户访问的域文件夹(即所有人。)

使用具有权限的域帐户登录并运行 winform 应用程序。

将 FileSystemWatcher 代码重构为 windows 服务,并在具有足够权限的 domian 帐户下运行。

在现有代码中模拟一个域帐户,代码项目有几个很好的解决方案。

【讨论】:

    猜你喜欢
    • 2012-06-19
    • 2013-05-19
    • 1970-01-01
    • 2011-09-15
    • 2012-01-09
    • 2015-03-31
    • 1970-01-01
    • 2015-10-31
    • 2014-01-28
    相关资源
    最近更新 更多