HttpWebRequest.UnsafeAuthenticatedConnectionSharing 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得或設定值,這個值表示是否允許高速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
。
備註
謹慎
WebRequest
、HttpWebRequest
、ServicePoint
和 WebClient
已經過時,您不應該將它們用於新的開發。 請改用 HttpClient。
此屬性的預設值為 false
,這會導致要求完成之後關閉目前的連接。 每次發出新要求時,您的應用程式都必須通過驗證順序。
如果此屬性設定為 true
,則用來擷取回應的連接在執行驗證之後仍保持開啟狀態。 在此情況下,將此屬性設定為 true
的其他要求可能會使用連線,而不需重新驗證。 換句話說,如果已為使用者 A 驗證連線,則使用者 B 可能會重複使用 A 的連線;使用者 B 的要求會根據使用者 A 的認證來完成。
謹慎
由於應用程式可以在未通過驗證的情況下使用連線,因此您必須確定將此屬性設定為 true
時,系統中沒有系統管理弱點。 如果您的應用程式傳送要求給多個使用者(模擬多個用戶帳戶),並依賴驗證來保護資源,除非您使用連線群組,否則請勿將此屬性設定為 true
。
如果您的效能問題,且應用程式正在具有整合式 Windows 驗證的網頁伺服器上執行,您可以考慮啟用此機制。
啟用此設定會將系統開啟為安全性風險。 如果您將 UnsafeAuthenticatedConnectionSharing 屬性設定為 true
請務必採取下列預防措施:
使用 ConnectionGroupName 屬性來管理不同用戶的連線。 這可避免非驗證應用程式可能會使用連線。 例如,使用者 A 應該具有與使用者 B 不同的唯一聯機組名。這會為每個用戶帳戶提供隔離層。
在受保護的環境中執行您的應用程式,以協助避免可能的連線惡意探索。
如果您控制後端伺服器,您也可以考慮關閉驗證持續性。 這會將效能提高到較低程度,但比較安全。 如需詳細資訊,請參閱 AuthPersistence。
注意
如果 PreAuthenticate 和 UnsafeAuthenticatedConnectionSharing 都設定為 true
,則每個要求都會使用來自不安全集區的聯機來傳送,但具有 Authorization 標頭。