调用aspx页面的EXE程序获取:401 - 未授权:由于凭据无效,访问被拒绝

问题描述 投票:1回答:1

我正在创建一个使用HttpClient来调用URL的可执行程序。我尝试使用DefaultNetworkCredentials,因为我不知道服务器的用户ID和密码。以下代码在我的本地计算机上成功运行,但在部署到服务器时会出错。

enter image description here

我的代码:

HttpClientHandler authtHandler = new HttpClientHandler()
{
    Credentials = CredentialCache.DefaultNetworkCredentials
};

// Call the URL                    
using (HttpClient httpClient = new HttpClient(authtHandler))
{
    var formContent = new FormUrlEncodedContent(new[]
    {
        new KeyValuePair<string, string>("testingkey", "testingvalue")
    });

    // Make it sync instead of async by using .Result
    var result = httpClient.PostAsync(url, formContent).Result;

    // Get the content, for verification 
    var content = result.Content;
}
c# asp.net
1个回答
2
投票

DefaultNetworkCredentials是运行应用程序的当前安全上下文的身份验证凭据。对于客户端应用程序,这些通常是运行应用程序的用户的Windows凭据。

如果用户对您使用HttpClient的内容没有URL权限,则会出现错误。让它成功

  1. 或者必须冒充访问该应用程序的用户或
  2. 使用系统定义的帐户(如网络服务凭据)运行EXE,并确保可以使用相同的方式访问HTTP应用程序。
© www.soinside.com 2019 - 2024. All rights reserved.