asp .Netアプリケーション(C#)をホストしている別のサーバーからリモートサーバーファイルにアクセスしようとしました。シナリオは次のとおりです。パスへのアクセスが拒否され、リモートサーバーファイルにアクセスしようとしています
私は、サーバーAでホストされているMVC Webアプリケーションを作成しました。場合によっては、ユーザーがサーバーBにあるXML構成ファイルを変更できるようにする必要があります。次に、サーバーBの共有フォルダからそのファイルを読み取ろうとするコード部分を示します。
(C#の - コントローラ)
WindowsImpersonationContext impContext = null;
try
{
impContext = NetworkSecurity.ImpersonateUser(
Settings.Default.ImpersonationDomain,
Settings.Default.ImpersonationUser,
Settings.Default.ImpersonationPass,
LogonType.LOGON32_LOGON_NETWORK,
LogonProvider.LOGON32_PROVIDER_DEFAULT);
}
catch (ApplicationException ex)
{
// write to log file
}
if (null != impContext)
{
try
{
//get the location of the configuration file
string remoteConfigFile = Settings.Default.RemoteDesktopMonitorCnfgFile;
//open the configuration file
XDocument xmlFile = XDocument.Load(@"\\SERVERB\Folder\configurationFile.exe.config");
だから、私の例外は、私はその設定ファイルを開こうとすると、私は例外を取得しています、ここにある:
Access to the path '\\SERVERB\Folder\configurationFile.exe.config' is denied
あなたが見ることができるように、私は」ファイルを読み取ろうとする前にユーザーを偽装して、その偽装がうまくいった。私は既に偽装しているユーザーに共有リソースへの完全なアクセス権を与えました。私はそのユーザーを両方のサーバー(AとB)のAdministratorsグループに参加させても同じ例外が発生しました。
両方のサーバーが同じWindowsドメイン上にあり、ドメイン上に存在するユーザーアカウントを使用しており、パスワードが正しいと言う価値があります。
私に教えていただけるお役に立てれば助かります。
ありがとうございます。
ありがとうございました。わかりましたが、私は検索に適切なキーワードを使用しませんでした。 – lidermin