自 v107 起在 RestSharp 上使用 NTLM/Kerberos

Using NTLM/Kerberos on RestSharp since v107

一段时间以来,RestSharpNtlmAuthenticator 似乎已被弃用。某处提到的设置方法 setting.UseDefaultCredentials = true; 也不可用。

那么如何将 NTLMKerberosRestSharp 一起使用?
和不!我不能说其他程序,我想使用 LDAPOAuth2.0 或任何您认为合适的程序。我有一个程序说:“我有一个 API,你可以通过 LDAP/Kerberos 授权,然后你就可以获得数据!”而且我不是那个 API.

的程序员

有没有人知道如何使用较新版本的 RestSharp 获取我的数据,或者我必须回到旧版本?

CredentialsUseDefaultCredentials都可用,不像你说的,在RestClientOptions:

https://github.com/restsharp/RestSharp/blob/8b388fbe832633d5c89e2a42e5cf078aa36e6a28/src/RestSharp/RestClientOptions.cs#L44-L53

/// <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);
}