【发布时间】:2013-01-13 08:20:33
【问题描述】:
我正在使用 MVC4 应用程序并使用 WebAPI 来获取/发送我的所有数据。在控制器中,我使用 HttpClient 请求来获取数据,一切正常。我面临的问题是,在项目中启用 Windows 身份验证时,Web API 调用返回 401 Unauthorized 错误。
我的控制器中执行调用的代码是:
using (var client = new HttpClient())
{
var invoiceDetailUrl = BASE_URL + Url.HttpRouteUrl(
"DefaultApi",
new { controller = "InvoiceDetails", id = id }
);
var result = client.GetAsync(invoiceDetailUrl).Result;
}
站点必须启用 Windows 身份验证,但不一定是 Web API 控制器。我尝试在 web.config 中排除 API 控制器,如下所示:
<location path="api">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
但是对 web.config 的添加什么也没做。
有什么建议吗?
【问题讨论】:
-
您找到解决方案了吗?我正在寻找同样的东西。
-
是的,我做了,我发现你需要这样做: HttpClientHandler handler = new HttpClientHandler(); handler.UseDefaultCredentials = true;使用 (var client = new HttpClient(handler)) { } }
-
@ncbl - 你在哪里以及如何添加这个?在母版页上?你能寄给我示例代码吗? (ASP.NET Intranet 站点使用 Visual Studio 2013 - .NET 4.5 Framework)
标签: c# asp.net-mvc-4 asp.net-web-api