ICredentialPolicy 介面
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
定義用於資源要求 (使用 WebRequest 及其衍生類別 (Derived Class) 所提出) 的認證原則。
public interface class ICredentialPolicy
public interface ICredentialPolicy
type ICredentialPolicy = interface
Public Interface ICredentialPolicy
- 衍生
範例
下列程式代碼範例示範此介面的實作,允許只針對以特定主機為目標的要求傳送認證。
public ref class SelectedHostsCredentialPolicy: public ICredentialPolicy
{
public:
SelectedHostsCredentialPolicy(){}
virtual bool ShouldSendCredential( Uri^ challengeUri, WebRequest^ request, NetworkCredential^ /*credential*/, IAuthenticationModule^ /*authModule*/ )
{
Console::WriteLine( L"Checking custom credential policy." );
if ( request->RequestUri->Host->Equals( L"www.contoso.com" ) || challengeUri->IsLoopback )
return true;
return false;
}
};
public class SelectedHostsCredentialPolicy: ICredentialPolicy
{
public SelectedHostsCredentialPolicy()
{
}
public virtual bool ShouldSendCredential(Uri challengeUri,
WebRequest request,
NetworkCredential credential,
IAuthenticationModule authModule)
{
Console.WriteLine("Checking custom credential policy.");
if (request.RequestUri.Host == "www.contoso.com" ||
challengeUri.IsLoopback)
return true;
return false;
}
}
備註
認證原則會決定是否要在傳送網路資源的 時傳送 WebRequest 認證,例如網頁的內容。 如果傳送認證,要求客戶端驗證的伺服器可以在收到要求時嘗試驗證用戶端,而不是傳送指出需要客戶端認證的回應。 雖然這可節省伺服器的來回行程,但此效能提升必須與透過網路傳送認證時固有的安全性風險進行平衡。 當目的地伺服器不需要客戶端驗證時,最好不要傳送認證。
注意
ICredentialPolicy 只有在 WebRequest 與要求相關聯的 或 WebProxy 具有不是 null
的認證時,才會叫用原則。 設定此原則不會影響未指定認證的要求。
AuthenticationManager.CredentialPolicy使用屬性來設定原則ICredentialPolicy。 處理要求驗證的 , IAuthenticationModule 會在執行驗證之前叫 ShouldSendCredential 用 方法。 如果方法傳 false
回 ,則不會執行驗證。
原則 ICredentialPolicy 會影響目前應用程式域中具有非 Null 認證的所有 實例 WebRequest 。 無法在個別要求上覆寫原則。
方法
ShouldSendCredential(Uri, WebRequest, NetworkCredential, IAuthenticationModule) |
傳回 Boolean,指出用戶端認證是否與資源要求 (使用 WebRequest 類別執行個體所提出) 一起傳送。 |