访问路径被拒绝,尝试访问远程服务器文件

时间:2010-12-07 22:02:21

标签: asp.net-mvc impersonation

我很难尝试使用托管在其中的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域上,并且我使用的是域中存在的用户帐户,并且密码正确。

你能给我的任何帮助都会很感激。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您的问题有一个解决方案already on StackOverFlow

看看吧!