1

我正在做一个小项目,在 asp.net mvc3 中,它将部署文件从本地驱动器复制到 windows server 2008 R2 服务器上的共享驱动器。我使用WMI连接,连接成功。但是,我尝试创建一个文件夹,并收到消息“登录失败:未知用户名或密码错误”。这是一个示例代码:

bool isConnected = false;
            options.Username = user.Name.Trim();
            options.Password = user.password.Trim();
            mScope = new ManagementScope("\\\\xxx.xxx.xxx.xxx\\root\\cimv2", options);
            mScope.Connect();
            if (mScope.IsConnected == true)
            {
               //I've gotten to this point. Then, the code below throw the exception
                Directory.CreateDirectory(@"\\\\xxx.xxx.xxx.xxx\Tester\shareFile.txt");
                isConnected = true;
            }

我想知道我在做什么?这是正确的做法吗?

4

1 回答 1

3

这是正确的方法,但是您尝试访问的当前用户将被传递到远程计算机以创建目录。此时的管理范围与 Directory.CreateDirectory 无关。这是两个不同的“世界”。您确实将信任授予 ManagementScope,但这对 Directory.CreateDirectory 没有影响。您可以使用模拟来做您想做的事情:

您如何在 .NET 中进行模拟?

但目前尚不清楚您是在 ASP.NET/MVC 还是其他平台上执行此操作。您的标签表示 ASP.NET MVC,但不是您的主要问题。

请记住,如果您使用的是 ASP.NET/MVC,则应用程序池的凭据将用于执行此类操作。

于 2013-11-05T14:47:41.460 回答