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 标头。

适用于