HttpWebRequest.PreAuthenticate 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得或設定值,這個值表示是否要使用要求傳送 Authorization 標頭。
public:
virtual property bool PreAuthenticate { bool get(); void set(bool value); };
public override bool PreAuthenticate { get; set; }
member this.PreAuthenticate : bool with get, set
Public Overrides Property PreAuthenticate As Boolean
屬性值
true
在驗證發生之後傳送具有要求的 HTTP 授權標頭;否則,false
。 預設值為 false
。
備註
謹慎
WebRequest
、HttpWebRequest
、ServicePoint
和 WebClient
已經過時,您不應該將它們用於新的開發。 請改用 HttpClient。
成功驗證特定 Uri 的用戶端要求之後,如果 PreAuthenticatetrue
並提供認證,則會將授權標頭與每個要求傳送至符合特定 Uri 到最後一個正斜線的任何 Uri。 因此,如果用戶端要求已成功向包含下列專案的特定 Uri 進行驗證:
http://www.contoso.com/firstpath/
然後,預先驗證的 Authorization 標頭會隨著每個要求傳送至下列任何一個 Uri 實例:
http://www.contoso.com/firstpath/
http://www.contoso.com/firstpath/default
http://www.contoso.com/firstpath/default.html
http://www.contoso.com/firstpath/sample.html
不過,授權標頭不會傳送要求給下列任何 Uri 實例:
http://www.contoso.com/
http://www.contoso.com/firstpath
http://www.contoso.com/secondpath/
http://www.contoso.com/firstpath/thirdpath/
如果用戶端對特定 Uri 的要求未成功驗證,要求會使用標準驗證程式。
除了第一個要求之外,PreAuthenticate 屬性會指出是否要將驗證資訊與後續要求一起傳送至符合特定 Uri 至最後一個正斜線的 Uri,而不需要等待伺服器挑戰。
用戶端與伺服器之間的下列對話框說明此屬性的效果。 對話框假設基本身份驗證正在使用中。
PreAuthenticate 是 false
:
用戶端:GET someUrl
伺服器:401 WWW-Authenticate Basic
用戶端:具有授權標頭的 GET
伺服器:200 OK
用戶端:GET someUrl
伺服器:401 WWW-Authenticate Basic
用戶端:具有授權標頭的 GET
伺服器:200 OK
PreAuthenticate 是 true
:
用戶端:GET someUrl
伺服器:401 WWW-Authenticate Basic
用戶端:具有授權標頭的 GET
伺服器:200 OK
用戶端:GET someUrl 搭配授權標頭
如果驗證配置不支援預先驗證,則會忽略此屬性的值。