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

man*_*nna 0 c#

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

任何帮助,将不胜感激.

谢谢

Pan*_*cus 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);
Run Code Online (Sandbox Code Playgroud)

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

使用它很简单:

using (Impersonator impersonator = new Impersonator())
{
    // code in here
}
Run Code Online (Sandbox Code Playgroud)