System.IO异常:登录失败:未知的用户名或密码错误

时间:2012-01-05 14:02:04

标签: asp.net .net impersonation

  

System.IO例外:登录失败:未知用户名或密码错误   1分钟前| LINK

大家好我想用所有可能的解决方案来解决这个问题,但是不能成功。

要求 - 我应该能够访问位于网络共享共享文件夹中的XML文件,以验证用户和其他用途。

问题:使用VS 2010进行调试时,我能够访问位于Network Share文件夹中的XML文件,但是当我发布到IIS 7时,我无法访问。

方法已接近:我创建了一个用户帐户XXX并使用密码,并使用户成为Administrators组的一部分。将网站应用程序池标识设置为创建的客户用户帐户(XXX)。

在web.config中我添加了一行:

<identity impersonate="true" userName="XXX" password="XXXXX"/>

捕获异常的代码 -

string UserConfigXML ="\\\\servername\\Engineering\\Kiosk Back Up\\UserCFG.XML"; 
reader = new StreamReader(UserConfigXML); 

string input = null; 
string[] sArray; 
while ((input = reader.ReadLine().Trim()) != "</USERS>") 
{ 
    if (input.Contains("<USER NAME=")) 
    { 
        sArray = input.Split(new Char[] { '"' }); 
        string sUserName = sArray[1].ToString().ToUpper(); 
        string sDelivery = ""; 
        while ((input = reader.ReadLine().Trim()) != ("</USER>")) 
        { 
            char[] array2 = new char[] { '<', '>' }; 
            if (input.Contains("<DELIVERY_MECHANISM>")) 
            { 
                string[] mechanism = input.Split(array2); 
                sDelivery = mechanism[2].ToString().ToUpper(); 
                if (sDelivery == "WEBMAIL") 
                { 
                    UsersList.Add(sUserName); 
                } 
            } 
        } 
    } 
} 
return UsersList; 

如何解决问题?

1 个答案:

答案 0 :(得分:0)

我为2种不同的场景提出了3个修复:

  1. 如果您使用域身份验证连接了两台计算机(服务器和装有xml的计算机):创建域用户并授予其访问持有xml的计算机中该文件的权限。

    < / LI>
  2. 除上述情况之外的任何其他情况:在两台计算机上创建具有相同名称和密码的用户,并将其设置为应用程序池模拟的用户。

  3. (UNSECURE)在任何情况下均可使用,无需模拟:将XML放入允许匿名访问的网络共享中。