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

问题描述 投票:0回答:1

System.IO 异常:登录失败:用户名未知或密码错误。
1 分钟前 |链接

大家好,我正在尝试使用所有可能的解决方案来解决此问题,但未能成功。

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

问题:使用 VS 2010 进行调试时,我能够访问位于网络共享文件夹中的 XML 文件,但在发布到 IIS 7 时却无法访问。

采取的方法:我创建了一个用户帐户 XXX 和密码,并将该用户设为管理员组的一部分。将网站应用程序池标识设置为创建的自定义用户帐户(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; 

有什么想法可以解决这个问题吗?

asp.net .net impersonation
1个回答
0
投票

我针对 2 种不同的场景提出 3 项修复:

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

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

  3. (不安全)适用于任何场景,无需模拟:将 XML 放在允许匿名访问的网络共享中。

© www.soinside.com 2019 - 2024. All rights reserved.