我在使用 ASP.NET 访问远程服务器上的文本文件时遇到问题。ASP.NET 1.1 应用程序在 Server 2003 上运行,使用模拟和请求者的 Windows 凭据。客户端、网络服务器和远程服务器都在同一个域中,用户有权访问文本文件。用户可以通过 UNC 共享从他们的机器上打开文本文件。当用户运行直接在服务器上登录的站点时,它工作正常。但是,当用户在他们的机器上尝试时,它不起作用。应如何设置模拟以使其正常工作?
编辑:该应用程序的其他功能工作正常,它只是访问不起作用的远程文件。
我在使用 ASP.NET 访问远程服务器上的文本文件时遇到问题。ASP.NET 1.1 应用程序在 Server 2003 上运行,使用模拟和请求者的 Windows 凭据。客户端、网络服务器和远程服务器都在同一个域中,用户有权访问文本文件。用户可以通过 UNC 共享从他们的机器上打开文本文件。当用户运行直接在服务器上登录的站点时,它工作正常。但是,当用户在他们的机器上尝试时,它不起作用。应如何设置模拟以使其正常工作?
编辑:该应用程序的其他功能工作正常,它只是访问不起作用的远程文件。
听起来您遇到了多跳问题。使用集成身份验证时,您可以从浏览器向 IIS 进行身份验证。但是,您不能对域中的任何其他计算机进行身份验证。原因是使用标准凭据,他们无法验证您的身份。
在 IIS 中,至少需要在应用程序文件夹上取消选中匿名和基本身份验证。您可能想要检查应用程序文件夹本身,而不仅仅是根文件夹。可能还有其他配置选项,但这是“唾手可得”的选项。
作为测试,请在模拟标记中指定用户名和密码,以强制应用程序始终模拟为您知道有权访问该文件的用户。
如果应用程序现在可以访问文本文件,您就会知道这是将用户的凭据传输到服务器。
如果应用程序仍然无法访问文本文件,则凭据不是问题,而是存在服务器配置问题。