簡體   English   中英

C#中的NetworkCredential在分配給HttpRequest對象時如何工作?

[英]How does NetworkCredential in C# works when assigned to a HttpRequest object?

我想知道NetworkCredentials是如何通過http請求傳遞的。 它們是作為HTTPHeaders,RequestData傳遞還是有其他東西攜帶信息。

我嘗試創建一個示例應用程序並檢查了fiddler日志。 我沒有看到它被添加為HTTPHeader所以帶有那些信息。

這是我嘗試的示例代碼:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://gmail.com");
request.Method = "GET";
request.ContentType = "application/json";
request.UserAgent = "Mozilla/4.0+(compatible;+MSIE+5.01;+Windows+NT+5.0";
request.Credentials = new NetworkCredential("TestUser", "Password-1");

從以下MSDN頁面;

支持的身份驗證方案包括Digest,Negotiate,Kerberos,NTLM和Basic。 https://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.credentials(v=vs.110).aspx

所以它將取決於,通常我猜它將選擇最安全和可用的方法......但它也說;

要將HttpWebRequest限制為一種或多種身份驗證方法,請使用CredentialCache類並將您的憑據綁定到一個或多個身份驗證方案

因此,如果您希望將其用作標題,我想您可以將其限制為僅使用CredentialCache對象進行基本身份驗證;

https://msdn.microsoft.com/en-us/library/system.net.credentialcache(v=vs.110).aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM