我很难尝试使用托管在其中的asp .Net应用程序(C#)从其他服务器访问远程服务器文件。方案如下:
我写了一个托管在SERVER A上的MVC Web应用程序;在某些情况下,它必须让用户修改位于SERVER B上的XML配置文件。因此,这是代码的一部分,我尝试从SERVER 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域上,并且我使用的是域中存在的用户帐户,并且密码正确。
你能给我的任何帮助都会很感激。
提前致谢。