AuthForwardServerList是做什么的?

有一点上下文,我们有几个Windows 7客户端连接到LDAP支持的Samba PDC。 我们还有一台Zimbra 8服务器,可以从相同的LDAP进行身份validation。 用户login到Windows 7客户端时,批处理脚本会映射Samba服务器上的networking驱动程序的数量。 所有这一切运作良好。

现在我想在用户使用WebDAVlogin时映射每个用户的Zimbra公文包文件夹。 我们添加了: net use Z: https://mail.ourserver.com/dav/user/Briefcase /u:user到我们的批处理脚本,但是只有在用户手动将他们的密码input到打开的命令提示符后才能使用。

显然,我希望能够在这里做的是使用Windowslogin凭据挂载驱动器,并且在他们已经login后不再提示input密码。使用net use Z: https://our.server.com/dav/user/Briefcase /u:user password有效,但是我们没有权限访问用户的纯文本密码,因此不是一个选项。

我遇到了这篇知识库文章中提到的AuthForwardServerListregistry项,当通过WebDAV连接到SharePoint服务器时,这应该解决类似的问题。 我试着添加registry项的值https://*.ourserver.com和它的各种组合,重新启动机器,但这似乎没有任何作用。 net use仍会提示input密码,Windows资源pipe理器中的“Map Network Drive”选项也是如此。

所以我的问题是, AuthForwardServerList实际上是如何工作的? 它只适用于Windows服务器,服务器是否必须支持NTLM,还是可以与任何使用BasicAuth的WebDAV服务器一起工作? 它只适用于IE浏览器而不是Windows Explorer?

另外,有什么办法可以访问用户刚用来login到机器的密码,并以某种方式将其传递给脚本? 该脚本是在samba服务器上dynamic生成的,并在客户端上执行,所以即使密码可以在服务器上以纯文本forms捕获,也可以将其附加到脚本中。

我最近遇到这个问题,并想提供一个答案,即使问题是过时的。 我的答案来自TechNet KB 943280 。

AuthForwardServerListregistry项创build后,WebClient服务将读取条目值。 如果客户端计算机尝试访问与列表中的任何expression式匹配的URL,则即使未configuration代理,用户凭证也将成功发送以对用户进行身份validation。

此function是作为Windows Vista的修补程序提供的,因为[在我看来] Win HTTP服务的工作方式存在很大的缺陷,因此内置于Windows 7中。 Win HTTP服务将忽略IE的内置区域检查机制,该机制将查看某个站点是否位于本地Intranet区域,然后自动将凭据发送到该Intranet站点。 相反,赢取HTTP评估URL如下:

  • “如果URL在服务器名称中不包含句点(例如下面的示例),则假定服务器位于本地Intranet站点上。” HTTP://的SharePoint / davshare
  • “如果URL包含句点,则假定服务器在Internet上,句点表示您使用的是FQDN地址,因此,除非configuration了代理,否则不会将凭据自动发送到此服务器,除非此服务器用于代理旁路。”

这是一个愚蠢的疏忽或可笑的懒惰。 如果Win HTTP服务只是引用了IE的安全区域,那么就没有问题,没有热修复程序,也没有AuthForwardServerList键。