自 v107 起在 RestSharp 上使用 NTLM/Kerberos
Using NTLM/Kerberos on RestSharp since v107
一段时间以来,RestSharp
的 NtlmAuthenticator
似乎已被弃用。某处提到的设置方法 setting.UseDefaultCredentials = true;
也不可用。
那么如何将 NTLM
或 Kerberos
与 RestSharp
一起使用?
和不!我不能说其他程序,我想使用 LDAP
或 OAuth2.0
或任何您认为合适的程序。我有一个程序说:“我有一个 API,你可以通过 LDAP/Kerberos
授权,然后你就可以获得数据!”而且我不是那个 API.
的程序员
有没有人知道如何使用较新版本的 RestSharp 获取我的数据,或者我必须回到旧版本?
Credentials
和UseDefaultCredentials
都可用,不像你说的,在RestClientOptions
:
/// <summary>
/// In general you would not need to set this directly. Used by the NtlmAuthenticator.
/// </summary>
public ICredentials? Credentials { get; set; }
/// <summary>
/// Determine whether or not the "default credentials" (e.g. the user account under which the current process is
/// running) will be sent along to the server. The default is false.
/// </summary>
public bool UseDefaultCredentials { get; set; }
为了扩展 Alexey 的回答,这里是让 v107 使用 Windows 身份验证的基本代码:
var clientOptions = new RestClientOptions("http://<server>:<port>/")
{
UseDefaultCredentials = true // send the current user's credentials
};
using (var client = new RestClient(clientOptions))
{
var request = new RestRequest("users?id=117");
var response = await client.GetAsync(request);
}
一段时间以来,RestSharp
的 NtlmAuthenticator
似乎已被弃用。某处提到的设置方法 setting.UseDefaultCredentials = true;
也不可用。
那么如何将 NTLM
或 Kerberos
与 RestSharp
一起使用?
和不!我不能说其他程序,我想使用 LDAP
或 OAuth2.0
或任何您认为合适的程序。我有一个程序说:“我有一个 API,你可以通过 LDAP/Kerberos
授权,然后你就可以获得数据!”而且我不是那个 API.
有没有人知道如何使用较新版本的 RestSharp 获取我的数据,或者我必须回到旧版本?
Credentials
和UseDefaultCredentials
都可用,不像你说的,在RestClientOptions
:
/// <summary>
/// In general you would not need to set this directly. Used by the NtlmAuthenticator.
/// </summary>
public ICredentials? Credentials { get; set; }
/// <summary>
/// Determine whether or not the "default credentials" (e.g. the user account under which the current process is
/// running) will be sent along to the server. The default is false.
/// </summary>
public bool UseDefaultCredentials { get; set; }
为了扩展 Alexey 的回答,这里是让 v107 使用 Windows 身份验证的基本代码:
var clientOptions = new RestClientOptions("http://<server>:<port>/")
{
UseDefaultCredentials = true // send the current user's credentials
};
using (var client = new RestClient(clientOptions))
{
var request = new RestRequest("users?id=117");
var response = await client.GetAsync(request);
}