StreamWriter抛出IOException登录失败:未知用户名或密码错误

时间:2017-07-15 04:30:09

标签: c# asp.net-web-api streamwriter

我试图让我的网络服务写入我们内联网上的共享驱动器。我在StreamWriter上获得了IOException

 string fullpath = path + "\\" + fileName;
 using (System.IO.StreamWriter file = new System.IO.StreamWriter(fullpath, append))
 {           
     file.WriteLine(contents);
     file.Close();
 }

我见过的例外,

IOException - Logon failure: unknown user name or bad password 

如果我理解正确,IIS Web服务器的用户需要有权写入共享驱动器。我想知道现在是否可以硬编码凭证,写入共享驱动器以进行调试。如何为StreamWriter提供凭据,还是我应该使用其他机制?

我调查了模仿(using StreamWriter on server in C#),并希望尽可能使用它作为最后的手段。

1 个答案:

答案 0 :(得分:0)

每当您以编程方式写入网络驱动器时,都会使用用于启动程序的用户名和密码。除非您使用域,否则会产生错误,因为网络驱动器无法识别您的用户名和密码。

所以要解决这个问题,您需要做的就是运行与其他用户相同的代码。这基本上是你想要避免的模拟内容,但是我找到了一个useful Stack Overflow Thread来解释这个,并且链接到你可以在代码中使用的包装类,以使事情更简单。

如此简单(来自thread):

using (Impersonation.LogonUser(domain, username, password, logonType))
{
        // do whatever you want as this user.
}

这应解决您的问题