1

私は次のようにDPAPIを使用しProtectDataています:

var temp = new byte[32]
{
    1,1,1,1,1,1,1,1,
    2,2,2,2,2,2,2,3,
    3,3,3,3,3,3,3,3,
    4,4,4,4,4,4,4,4
};

ProtectedData.Protect(temp, null, DataProtectionScope.CurrentUser);
string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;

temp が次のようになったとします。

temp = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,....31 };

このコードを .exe ファイルと WebService (IIS) から実行したいと考えています。
問題は、exe からコードを実行している場合、現在のユーザーがMyDomain/Administrator、WebService からコードを実行している場合、現在のユーザーがIIS APPPOOL/MyApp.

この問題を解決するにはどうすればよいですか? 次のように .exe ファイルから実行しようとしてWebServiceいます。

Process.Start(@"C:\myexe.exe");

しかし、何らかの理由で機能しませんでした(iisアプリケーションに完全にアクセスできます)。 とにかく、これがこの場合の正しい解決策だとは思いません。

注:セキュリティ上の理由から、変更できませんDataProtectionScope.LocalMachineDataProtectionScope.CurrentUser

4

2 に答える 2

0

問題は解決しました。
ローカル ユーザーから IIS アプリケーションを実行しています。
これを見つけるには、アプリ プールを選択し、[アクション] ペイン メニューの下の [詳細設定...] をクリックします。[ID] を選択し、リストされている現在のユーザーの横にあるボタンをクリックします。[カスタム アカウント] を選択し、[設定] をクリックします。ユーザー名には domain\username の形式を使用し、ユーザーのパスワードを入力します。

于 2016-09-07T09:50:55.163 に答える