HttpWebRequest.UnsafeAuthenticatedConnectionSharing 属性

定义

获取或设置一个值,该值指示是否允许经过高速 NTLM 身份验证的连接共享。

public:
 property bool UnsafeAuthenticatedConnectionSharing { bool get(); void set(bool value); };
public bool UnsafeAuthenticatedConnectionSharing { get; set; }
member this.UnsafeAuthenticatedConnectionSharing : bool with get, set
Public Property UnsafeAuthenticatedConnectionSharing As Boolean

属性值

true 表示使经过身份验证的连接保持打开状态;否则为 false

注解

此属性的默认值为 false,这会导致在请求完成后关闭当前连接。 每次发出新请求时,应用程序都必须通过身份验证顺序。

如果此属性设置为 true,则执行身份验证后,用于检索响应的连接将保持打开状态。 在这种情况下,将此属性设置为 true 的其他请求可能会使用连接,而无需重新进行身份验证。 换句话说,如果连接已针对用户 A 进行身份验证,则用户 B 可能会重复使用 A 的连接;用户 B 的请求根据用户 A 的凭据得到满足。

注意

由于应用程序可以在不通过身份验证的情况下使用连接,因此,在将此属性设置为 true时,需要确保系统中不存在管理漏洞。 如果应用程序向多个用户发送请求 (模拟多个用户帐户) 并依赖于身份验证来保护资源,请不要将此属性设置为 true ,除非使用连接组,如下所示。

如果遇到性能问题,并且应用程序在具有集成Windows 身份验证的 Web 服务器上运行,则可以考虑启用此机制。

启用此设置会让系统面临安全风险。 如果将 属性设置为UnsafeAuthenticatedConnectionSharingtrue,请确保采取以下预防措施:

  • ConnectionGroupName使用 属性管理不同用户的连接。 这可避免未经身份验证的应用程序可能使用连接。 例如,用户 A 应具有与用户 B 不同的唯一连接组名称。这为每个用户帐户提供一个隔离层。

  • 在受保护的环境中运行应用程序,以帮助避免可能的连接攻击。

如果控制后端服务器,则可以考虑关闭身份验证持久性作为替代方法。 这在一定程度上提高了性能,但更安全。 有关更多详细信息,请参阅 AuthPersistence

注意

如果 和 UnsafeAuthenticatedConnectionSharingPreAuthenticate设置为 true,则使用来自不安全池的连接(但具有 Authorization 标头)发送每个请求。

适用于