C#将目录删除为另一个用户

时间:2009-10-21 12:53:12

标签: c#

我目前正在尝试编写一个小服务来删除一个目录及其中包含的所有文件,有一个问题我不知道如何解决哪个是用户没有访问权限文件夹或更新它,所以我试图从AD中以管理员身份运行删除。有什么办法可以在服务中做到这一点吗?由于服务将通过一个小脚本在系统登录上运行以启动它。

任何帮助都将不胜感激。

由于

2 个答案:

答案 0 :(得分:7)

您可以公开本机“LogonUser”方法,并使用它们模拟以其他用户身份登录。我在其他项目中成功使用过它。

[DllImport("advapi32.dll", CharSet = CharSet.Auto)]
public static extern bool LogonUser(String lpszUserName, String lpszDomain,
    String lpszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken);

Fresh Click Media做了一篇关于此的文章并编写了一个示例Impersonate类: - > http://www.freshclickmedia.com/blog/2008/11/programmatic-impersonation-in-c/

使用它非常简单:

using (Impersonator impersonator = new Impersonator())
{
    // code in here
}

答案 1 :(得分:1)

如果它作为Windows服务运行,则可以在安装服务时为其提供特定凭据。或者你问的是一个只能在启动时运行的小型独立应用程序?

换句话说,您是在谈论已安装的Windows服务还是独立应用?