HttpWebRequest.PreAuthenticate 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置一个值,该值指示是否使用请求发送授权标头。
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/
然后,预身份验证的授权标头随每个请求发送到以下任何 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 且不等待服务器质询的 Uri 发送身份验证信息。
客户端和服务器之间的以下对话框说明了此属性的效果。 该对话框假定正在使用基本身份验证。
PreAuthenticate
false
:
客户端:GET someUrl
服务器:401 WWW-Authenticate 基本
客户端:使用授权标头 GET
服务器:200 正常
客户端:GET someUrl
服务器:401 WWW-Authenticate 基本
客户端:使用授权标头 GET
服务器:200 正常
PreAuthenticate
true
:
客户端:GET someUrl
服务器:401 WWW-Authenticate 基本
客户端:使用授权标头 GET
服务器:200 正常
客户端:使用授权标头 GET someUrl
如果身份验证方案不支持预身份验证,则忽略此属性的值。