gpt4 book ai didi

c# - 如何将 Windows 身份验证凭据从客户端传递到 Web API 服务

转载 作者:可可西里 更新时间:2023-11-01 07:54:45 25 4
gpt4 key购买 nike

在我的公司环境中,我有 IIS7.5 托管 Web API 服务和一个单独的网站,该网站通过 RestSharp 库调用该服务。两者当前都配置了 Windows 身份验证。

如果我使用浏览器导航到其中任何一个,系统会提示我输入我的 Windows 凭据,一切都很好......我得到了我想要的网页,REST 服务吐出我的数据。我正在努力弄清楚的部分是如何使用单个凭据对两者进行身份验证。我不知道如何将网站的凭据传递给服务(我尝试模拟但没有成功),或者手动提示用户输入用户名/密码,然后使用“Windows”对其进行身份验证。

帮助新手?

最佳答案

网络 API 设置

  1. 启用Windows Authentication

网络应用程序设置

  1. 启用Windows Authentication
  2. 添加<identity impersonate="true" /><system.web> web.config 的
  3. 在 web.config 中添加以下内容:

     <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    </system.webServer>
  4. 启用Windows AuthenticationASP.NET Impersonation在 IIS 中

您可以使用以下代码将数据 POST 到 Web API(显然也包括 GET)

using (var client = new WebClient { UseDefaultCredentials = true })
{
client.Headers.Add(HttpRequestHeader.ContentType, "application/xml; charset=utf-8");
byte[] responseArray = client.UploadData("URL of web API", "POST", Encoding.UTF8.GetBytes(XMLText));
string response = Encoding.ASCII.GetString(responseArray);
}

注意:如果您仍然收到 401 错误,您可能需要为您的 URL 使用 IP 地址而不是常规域名(例如:155.100.100.10 而不是 mycompany.com)

关于c# - 如何将 Windows 身份验证凭据从客户端传递到 Web API 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26430045/

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