设置虚拟目录的权限

出于安全原因,后台智能传输服务 (BITS) 不会将文件上传到启用了脚本和执行权限的虚拟目录。 如果将文件上载到启用了这些权限的虚拟目录,则作业将失败,错误代码为 BG_E_SERVER_EXECUTE_ENABLE。

BITS 不要求对虚拟目录启用写入功能,因此建议关闭对虚拟目录的写入访问。

经过身份验证的用户(或用于匿名身份验证的 IIS 匿名用户)必须对虚拟目录映射到的物理目录具有更改权限;仅授予写入权限是不够的。

指定通知的权限

为虚拟目录和通知 URL 指定的身份验证方案(请参阅 BITSServerNotificationURL 属性)必须兼容。 BITS 使用为虚拟目录指定的身份验证方案来访问通知 URL。 如果 BITS 由于身份验证失败而无法访问通知 URL,则上传作业将失败。

如果通知类型(请参阅 BITSServerNotificationType 属性)为按引用,则应用程序必须确保用户有权访问引用的文件(请参阅 BITS-Request-DataFile-Name 标头)。 BITS 将引用文件上的 ACL 设置为虚拟目录映射到的物理目录的 ACL。

注意

被通知的应用程序必须能够映射和访问远程文件,即使通知 URL 由位于与物理上传目录不同的计算机上的 Web 服务器提供服务。 BITS-Request-DataFile-Name 标头始终包含相对于托管 BITS 扩展组件的计算机的路径规范。 在另一台计算机上运行的应用程序可能需要在访问该路径之前将路径转换为 UNC 路径。

 

BITS 支持多种身份验证方案的组合。 但是,应对虚拟目录和匹配的通知 URL 使用以下身份验证方案。

  • 为了支持引用通知,如果物理上传目录(虚拟目录指向的目录)使用匿名以外的身份验证方案,则应将虚拟目录配置为使用 NTLM(协商)身份验证。 如果物理上传目录允许匿名请求(不需要身份验证),则虚拟目录应启用匿名请求(不需要身份验证)。

    必须设置物理上传目录中的 ACL,以便经过身份验证的用户可以读取通知 URL 指向的目录中的文件。 BITS 使用物理上传目录的 ACL 来设置临时上传文件的 ACL(BITS-Request-DataFile-Name 标头包含临时文件的路径)。

  • 由于按值通知不要求被通知的应用程序访问包含上传内容的临时文件,因此身份验证方案可以是匿名的,也可以是协商 (NTLM) 的。 唯一的要求是,虚拟目录的经过身份验证的用户还必须获得访问通知 URL 的授权。

指定远程共享的权限

虚拟目录可以指向不同计算机或网络共享上的映射驱动器。 如果它指向映射的网络驱动器,则用于映射驱动器的凭据应该对远程共享拥有完全控制权。

如果虚拟目录指向网络共享,则 BITS 使用虚拟目录的连接身份用户凭据访问远程共享。 若要访问远程共享,连接身份帐户需要具有针对 LogonUser 函数的文档所描述的特权。 BITS 使用 LOGON32_LOGON_BATCH 或 LOGON32_LOGON_INTERACTIVE 登录类型登录。 连接身份用户帐户需要对远程共享拥有完全访问权限;仅授予写入权限是不够的。

当物理上传目录映射到网络共享时,请求通知 URL 的调用方的身份是连接身份用户,或者是物理上传目录的经过身份验证的用户(仅在 IIS 6.0 及更高版本中可用)(当在连接身份对话框中选中验证对网络资源的访问时,始终使用经过身份验证的用户凭据复选框时)。