C# CredentialCache.Add方法中的authType参数

C# CredentialCache.Add方法中的authType参数,c#,credentials,C#,Credentials,CredentialCache.Add方法中的authType是什么? 我不明白基于我传递给这个Add方法的uRi,我应该传递什么给它。我的uRi实际上是一个asmx页面地址authType似乎是指您提供的凭证(用户名和密码)是如何通过http web请求发送的。Basic粗略地表示未加密,digest表示随请求一起发送散列以对其进行身份验证。请注意,此身份验证类型由服务器决定,您没有选择遵循哪种身份验证类型。 请参阅和有两种主要的HTTP身份验证方案: :用户名和密码以明文形式添加到HTTP

CredentialCache.Add方法中的authType是什么?
我不明白基于我传递给这个Add方法的uRi,我应该传递什么给它。我的uRi实际上是一个asmx页面地址

authType似乎是指您提供的凭证(用户名和密码)是如何通过http web请求发送的。Basic粗略地表示未加密,digest表示随请求一起发送散列以对其进行身份验证。请注意,此身份验证类型由服务器决定,您没有选择遵循哪种身份验证类型。

请参阅和

有两种主要的HTTP身份验证方案:

  • :用户名和密码以明文形式添加到HTTP请求头中
  • :服务器使用nonce质询客户机,客户机使用nonce和密码的哈希(摘要)进行响应,服务器可以对此进行验证
authType参数是HTTP身份验证方案,其凭据将添加到缓存中。当发出请求时,服务器将首先使用403进行响应,并指定支持的身份验证方案以及领域和nonce(如果需要)。如果请求的身份验证类型在缓存中(基本或摘要),则请求将使用凭据缓存响应质询。如果设置了身份验证信息,第一次调用之后的后续调用可能会预先发送身份验证信息。

我查看了CredentialCache.Add()方法的其他重载:

定义可在此处找到:
在这里,他们将字符串称为“authenticationType”(而不是“authType”)并声明:

authType支持的值为“NTLM”、“摘要”、“Kerberos”, 和“谈判”

我发现这令人困惑,因为“authType”和“authenticationType”似乎可以互换使用

当我在问题中引用的方法重载中使用“NTLM”和“协商”表示“authType”时,它对我的URL有效:

CredentialCache.Add(Uri uriPrefix, String authType, NetworkCredential cred)

那NTLM呢?是否有指向列出这些类型的MSDN docu的链接?未记录带有HTTP的NTLM。有ymmv。
CredentialCache.Add(Uri uriPrefix, String authType, NetworkCredential cred)