gpt4 book ai didi

c# - 如何将 Windows 身份验证与 Microsoft.Rest.ServiceClient 一起使用

转载 作者:行者123 更新时间:2023-11-30 12:38:47 25 4
gpt4 key购买 nike

我有一个使用 autorest 生成的 Microsoft.Rest.ServiceClient。我想访问受 Windows 身份验证和基本身份验证保护的 REST API。

目标是使用 Windows 身份验证。我试过如下:

var handler = new HttpClientHandler
{
UseDefaultCredentials = true,
};
this.InitializeHttpClient(handler);

这不起作用,我得到:

System.Net.Http.HttpRequestException: An error occurred while sending the request. 
---> System.Net.WebException: The remote server returned an error: (401) Unauthorized.
---> System.ComponentModel.Win32Exception: The target principal name is incorrect

当我使用基本身份验证时,它会起作用。

this.Credentials = new BasicAuthenticationCredentials
{
UserName = Configuration.User,
Password = Configuration.Password
};

ServiceClient 的设置是在

的构造函数中完成的
MyClient : Microsoft.Rest.ServiceClient

我需要向客户端添加什么才能使 Windows 身份验证正常工作?

已编辑:

看起来问题出在服务器端。 IIS 中的设置。

客户端将按预期工作。

最佳答案

这基本上以我喜欢的语法重申了 OP 和@Anders 已经涵盖的内容...

 var windowsAuthHandler = new HttpClientHandler { UseDefaultCredentials = true };
var webApiUri = new System.Uri("https://localhost:8080");
var apiClient = new MyAutoRestClient(webApiUri ,windowsAuthHandler);

如果您正在浏览,OP 似乎表明这不起作用,但实际上确实如此。但是,正如 OP 后来指出的那样,请务必从 IIS 开始,以确保其配置正确

关于c# - 如何将 Windows 身份验证与 Microsoft.Rest.ServiceClient 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49902131/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com