0

我正在尝试从 Asp.net 应用程序中的共享文件夹(ftp 位置)访问文件。它在视觉工作室工作正常。当我在 IIS 7 中部署相同时,我收到以下错误

“登录失败:用户在这台计算机上没有被授予请求的登录类型。”

堆栈跟踪:

[IOException:登录失败:未授予用户在此计算机上请求的登录类型。]
System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) +9723522 System.IO.FileSystemEnumerableIterator 1.CommonInit() +245 System.IO.FileSystemEnumerableIterator1..ctor(String path, String originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler`1 resultHandler) +556
System.IO。 DirectoryInfo.InternalGetFiles(String searchPattern, SearchOption searchOption) +64 System.IO.DirectoryInfo.GetFiles() +14

……

我的应用程序池在 NETWORKSERVICE 模式下运行 我需要向 IIS 中的哪个用户授予访问此文件夹的权限?是 IUSER 还是 NT AUTHORITY\NETWORK SERVICE ?如何在 IIS 中识别当前正在运行的用户?

4

3 回答 3

2

连接被拒绝的原因很可能是组策略不允许运行 IIS 服务的用户访问该服务。

我不想授予任何这些系统用户访问网络资源的权限。其他计算机也可能连接。

相反 - 让您的程序使用您创建的访客帐户或其他帐户进行身份验证并授予适当的权限。

我会说这将是一种更安全的方法。

于 2013-03-06T21:15:19.930 回答
0

调试 - 在异常时刻查看Environment.UserName 。它将是发起请求的用户或匿名用户。

修复:如果本地文件 - 授予权限可能没问题。如果远程并使用用户的模拟帐户 - 需要模拟另一个对远程计算机具有权限的帐户,因为您不能使用已经模拟的帐户来访问远程资源(“NTLM 一跳”)。

注意:确保在允许访问文件时查看安全要求。

于 2013-03-06T21:36:30.287 回答
0

您可能正尝试以交互方式登录只能通过网络访问的计算机,反之亦然。

更改您的登录位置。根据需要尝试本地(交互)或远程(通过网络)登录。您可能想要求管理计算机安全的人员更改安全数据库,以便您可以本地或远程登录。

于 2013-03-06T21:13:23.517 回答