繁体   English   中英

C#PostAsync - {StatusCode:401,ReasonPhrase:与ASP.NET MVC 4'未授权'

[英]C# PostAsync - {StatusCode: 401, ReasonPhrase: 'Unauthorized' with ASP.NET MVC 4

我正在使用ASP.NET MVC4并使用PostAsync调用控制器中的一个方法,从一个MVC4项目到另一个MVC4项目。 我没有在被调用的控制器或方法中使用任何身份验证属性。

引用此链接: link修复了我在本地运行应用程序并将PostAsync调用到服务器上的应用程序时的问题。 现在,当我将应用程序部署到服务器并尝试调用其他应用程序时,我收到了未经授权的错误。 我究竟做错了什么?

在IIS中运行的两个应用程序都使用相同的站点和相同的应用程序池。

使用远程调试,这是服务器响应:

{StatusCode: 401, ReasonPhrase: 'Unauthorized', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
  Cache-Control: private
  Server: Microsoft-IIS/7.0
  WWW-Authenticate: Negotiate
  WWW-Authenticate: NTLM
  X-Powered-By: ASP.NET
  Date: Fri, 23 Jun 2017 13:44:19 GMT
  Content-Length: 6644
  Content-Type: text/html; charset=utf-8
}}

这是我的代码:

        using (var handler = new HttpClientHandler { UseDefaultCredentials = true })
        using (HttpClient client = new HttpClient(handler) { BaseAddress = new Uri(Properties.Settings.Default.EnvironmentRootPath)})
        {
            List<string> orderNumbers = NumList;
            var pairs = new List<KeyValuePair<string, string>>
            {
                new KeyValuePair<string, string>("orderNumbers", string.Join(",", orderNumbers))
            };

            var content = new FormUrlEncodedContent(pairs);

            // call sync
            var response = client.PostAsync("CentralBroadcast/broadcastNewOrder", content).Result;
            if (response.IsSuccessStatusCode)
            {
                //
            }
            else
            {
                //
            }
        }

问题似乎是由于从承载IIS 5.1或更高版本的同一服务器访问本地Web应用程序并使用完全限定的域名。

FQDN的域名需要在注册表中列出白名单,我可以通过完成以下步骤来完成此操作:

在进行任何调整之前,最好先创建一个注册表备份

1)单击“ 开始” ,单击“运行” ,键入regedit,然后单击“ 确定”

2)在注册表编辑器中,找到并单击以下注册表项: HKEY_LOCAL_MACHINE \\ SYSTEM \\ CurrentControlSet \\ Control \\ Lsa \\ MSV1_0

3)右键单击“ MSV1_0” ,指向“ 新建” ,然后单击“ 多字符串值”

4)键入BackConnectionHostNames,然后按Enter。

5)右键单击“ BackConnectionHostNames” ,然后单击“修改”。

6)在“ 数值数据”框中,键入本地计算机上站点的主机名或主机名,然后单击“ 确定”

7)退出注册表编辑器,然后重新启动IISAdmin服务。

有关更多详细信息,请参阅: https//support.microsoft.com/en-us/help/896861/you-receive-error-401.1-when-you-browse-a-web-site-that-uses-integrate

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM