作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
在我的公司环境中,我有 IIS7.5 托管 Web API 服务和一个单独的网站,该网站通过 RestSharp 库调用该服务。两者当前都配置了 Windows 身份验证。
如果我使用浏览器导航到其中任何一个,系统会提示我输入我的 Windows 凭据,一切都很好......我得到了我想要的网页,REST 服务吐出我的数据。我正在努力弄清楚的部分是如何使用单个凭据对两者进行身份验证。我不知道如何将网站的凭据传递给服务(我尝试模拟但没有成功),或者手动提示用户输入用户名/密码,然后使用“Windows”对其进行身份验证。
帮助新手?
最佳答案
网络 API 设置
Windows Authentication
网络应用程序设置
Windows Authentication
<identity impersonate="true" />
在<system.web>
web.config 的在 web.config 中添加以下内容:
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
</system.webServer>
启用Windows Authentication
和 ASP.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/
我是一名优秀的程序员,十分优秀!