(内联网)我正在尝试设置一个网站,该网站将从网络共享(\servername old ile)提供文件。只有有权通过 Active Directory 组访问网络文件夹的用户才能通过网站下载文件。
地点:
应用程序池:默认应用程序池
身份验证:Windows 身份验证
子站点:
应用程序池:默认应用程序池
身份验证:Windows 身份验证
虚拟目录:
物理路径:\服务器名称\文件夹
物理路径凭证:应用程序用户(直通身份验证)
登录类型:明文
当我尝试使用如下链接导航到站点时:http://webserver/subsite/virtualdirectory/folder/file.xls,即使我输入的凭据应该有效,也会反复提示我输入凭据。在虚拟目录设置中,如果我将其从传递更改为“特定用户”,它可以工作,但会绕过活动目录组的安全性。
我在这里配置不正确吗?
注意,我已经看过了直通身份验证不起作用。 IIS 7
正在进行两个单独的身份验证:
这些是完全独立的操作。
我相信您遇到了双跳问题:您可以使用用户的凭据在您的服务器上进行身份验证,但您不能(默认情况下)将这些凭据发送到另一台服务器。为此,您可以在 Active Directory 中设置 Kerberos 委派,这可能会变得复杂。
如果无法设置委派,那么您将必须找到另一种方法来向用户提供这些文件。
我同意,如果您确实希望共享的共享权限来决定谁可以通过站点下载文件,那么这是一个很难解决的问题。一种选择是直接链接到共享(如果用户的计算机可以通过网络访问服务器):
<a href="file://servername/Folder/somefile.txt">Download</a>
这在 IE 中有效,但在 Chrome 中无效,因为 Chrome 专门禁用 file:// 链接(除非您通过 plugin 启用它)。
另一个更复杂的选项是通过应用程序传输文件。您的应用程序可以访问该文件并枚举共享权限以查看用户是否具有访问权限,如果有则允许下载。但众所周知,NTFS 权限很难通过。
或者只是忽略共享权限并找到其他方法来确定该人是否应该具有访问权限(例如一个特定的安全组),而不是依赖于共享权限。
恐怕指定用户是实现此目的的唯一方法。
我建立了一个共享文件夹,如\server\shared。 当我监视 NTLM 身份验证时,我还注意到,如果我将用户指定为 Pass-through,那么 IIS 将尝试访问大写 \SERVER\SHARED 的路径并被拒绝。
但是,如果我指定用户进行身份验证,NTLM 可以正常工作,并且工作进程不会执行相同的操作。我还注意到工作和非工作操作的用户身份是相同的。
我在工作站和域环境中都尝试过。但是,NTLM 和 Kerberos 的结果是相同的。所以我认为您可能需要接受特定用户作为解决方法。
我也有同样的问题。登录信息出现在 IIS 服务器上,但匿名登录信息不断出现在我与之共享文件的服务器上。