共用方式為


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

備註

謹慎

WebRequestHttpWebRequestServicePointWebClient 已經過時,您不應該將它們用於新的開發。 請改用 HttpClient

此屬性的預設值為 false,這會導致要求完成之後關閉目前的連接。 每次發出新要求時,您的應用程式都必須通過驗證順序。

如果此屬性設定為 true,則用來擷取回應的連接在執行驗證之後仍保持開啟狀態。 在此情況下,將此屬性設定為 true 的其他要求可能會使用連線,而不需重新驗證。 換句話說,如果已為使用者 A 驗證連線,則使用者 B 可能會重複使用 A 的連線;使用者 B 的要求會根據使用者 A 的認證來完成。

謹慎

由於應用程式可以在未通過驗證的情況下使用連線,因此您必須確定將此屬性設定為 true時,系統中沒有系統管理弱點。 如果您的應用程式傳送要求給多個使用者(模擬多個用戶帳戶),並依賴驗證來保護資源,除非您使用連線群組,否則請勿將此屬性設定為 true

如果您的效能問題,且應用程式正在具有整合式 Windows 驗證的網頁伺服器上執行,您可以考慮啟用此機制。

啟用此設定會將系統開啟為安全性風險。 如果您將 UnsafeAuthenticatedConnectionSharing 屬性設定為 true 請務必採取下列預防措施:

  • 使用 ConnectionGroupName 屬性來管理不同用戶的連線。 這可避免非驗證應用程式可能會使用連線。 例如,使用者 A 應該具有與使用者 B 不同的唯一聯機組名。這會為每個用戶帳戶提供隔離層。

  • 在受保護的環境中執行您的應用程式,以協助避免可能的連線惡意探索。

如果您控制後端伺服器,您也可以考慮關閉驗證持續性。 這會將效能提高到較低程度,但比較安全。 如需詳細資訊,請參閱 AuthPersistence

注意

如果 PreAuthenticateUnsafeAuthenticatedConnectionSharing 都設定為 true,則每個要求都會使用來自不安全集區的聯機來傳送,但具有 Authorization 標頭。

適用於