【问题标题】:ASP.NET MVC 4 - 401 Access DeniedASP.NET MVC 4 - 401 访问被拒绝
【发布时间】:2013-05-15 19:10:53
【问题描述】:

我创建了一个非常简单的 WebAPI,其中包含一个只返回一个整数的 get 命令。当我在浏览器中运行它时,它工作得很好。但是,当我尝试从解决方案中的另一个项目有问题地访问时,我得到以下信息:

2013-05-15 17:46:47,811 - 响应:StatusCode:401,ReasonPhrase:“拒绝访问”,版本:1.1,内容:System.Net.Http.StreamContent,标头:

{

日期:格林威治标准时间 2013 年 5 月 15 日星期三 16:46:47

服务器:Microsoft-IIS/5.1

WWW-认证:协商

WWW-身份验证:NTLM

连接:关闭

内容长度:4431

内容类型:文本/html

}

这是我正在使用的代码。任何帮助将不胜感激。

var client = new HttpClient { BaseAddress = new Uri(_uri) };

client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

var response = client.GetAsync(string.Format("api/Config/{0}", id)).Result;

if (response.IsSuccessStatusCode)
{
    var res = response.Content.ReadAsAsync<int>().Result;
    return res;
}

【问题讨论】:

    标签: c# asp.net-mvc asp.net-mvc-4


    【解决方案1】:

    由于响应表明您无权访问该资源,可能是因为您没有传递正确的凭据。看起来您的服务已启用 Windows 身份验证。尝试执行以下操作,看看是否有效:

    HttpClientHandler hndlr = new HttpClientHandler();
    hndlr.UseDefaultCredentials = true;
    var client = new HttpClient(hndlr) { BaseAddress = new Uri(_uri) };
    

    【讨论】:

    • 如果您使用调用 MVC Core Web API 并获得 401“未授权”响应,则上述解决方案适用。
    猜你喜欢
    • 1970-01-01
    • 2014-01-08
    • 1970-01-01
    • 1970-01-01
    • 2011-02-17
    • 1970-01-01
    • 1970-01-01
    • 2020-08-09
    • 2013-12-15
    相关资源
    最近更新 更多