現在ログインしているユーザーとは別のユーザーを使用してファイル システムにファイルを保存するにはどうすればよいですか?
現在、.NET Framework 4.0 を使用しています。
ログイン資格情報を持っている場合は、他のユーザーになりすますことができます
Win32 で DLL インポートを使用して LogonUser を呼び出す
[DllImport("advapi32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
public static extern bool LogonUser(String lpszUsername, String lpszDomain, String lpszPassword,
int dwLogonType, int dwLogonProvider, out SafeTokenHandle phToken);
次に、コードで偽装を行うことができます
SafeTokenHandle safeTokenHandle;
string userName, domainName, password;
const int LOGON32_PROVIDER_DEFAULT = 0;
const int LOGON32_LOGON_INTERACTIVE = 2;
bool returnValue = LogonUser(userName, domainName, password,
LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT,
out safeTokenHandle);
専用のサービス アカウントで実行される古い ASMX Web サービスがあり、アプリはそれに Web 要求を送信します。ファイルはバイト配列としてサービスに送信され、サービスはファイルを共有の場所に書き出します。これを使用するアプリに対して適切なセキュリティとログインを確保する必要があります。