8

プログラムが読み取り用にファイルを開くために、ユーザー名とパスワードを指定するにはどうすればよいですか? ファイルにアクセスする必要があるプログラムは、ファイルがあるフォルダーへの読み取りアクセス権を持たないアカウントから実行されています。プログラムは C# および .NET 2 で記述され、XP で実行され、ファイルは Windows Server 2003 マシン上にあります。

4

3 に答える 3

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);
}
于 2008-10-30T08:41:05.577 に答える
6

Nuget パッケージNuGet ギャラリー |を使用しました。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));
}

以下の James の回答は、Nuget の前であり、後で Nuget で最も多くのパッケージをダウンロードする前のものです。皮肉ですよね?

于 2016-02-18T21:41:37.513 に答える
0

必要な権限を持つユーザーを偽装できます。これを行う方法を説明するMSDNの記事があります。

于 2008-10-30T08:21:43.867 に答える