如何显示凭据才能打开文件?

时间:2008-10-30 08:06:22

标签: c# .net security filesystems

如何指定用户名和密码以便我的程序打开 一个文件供阅读? 需要访问该文件的程序是从一个帐户运行的 没有该文件所在文件夹的读取权限。 程序是用C#和.NET 2编写的,在XP下运行,文件在Windows Server 2003机器上。

3 个答案:

答案 0 :(得分:12)

您想要冒充有权访问该文件的用户。

我建议使用这样的课程 - http://www.codeproject.com/KB/cs/zetaimpersonator.aspx。它隐藏了模仿的所有令人讨厌的实现。

using (new Impersonator("myUsername", "myDomainname", "myPassword"))
{
  string fileText = File.ReadAllText("c:\test.txt");
  Console.WriteLine(fileText);
}

答案 1 :(得分:6)

我使用过Nuget包NuGet Gallery | Simple Impersonation Library 1.1.0但还有其他包;搜索其他人的模拟行为。

使用交互式登录处理文件结构的示例用法:

using (Impersonation.LogonUser("{domain}",
                               "{UserName}", 
                               "{Password}", 
                               LogonType.Interactive))
{
     var directory = @"\\MyCorpServer.net\alpha\cars";

     Assert.IsTrue(Directory.Exists(directory));
}

詹姆斯'下面的回答是在Nuget之前,之后他会在Nuget上下载最多的包。讽刺呃?

答案 2 :(得分:0)

您可以冒充具有必要权限的用户。有article on MSDN描述了如何执行此操作。