【问题标题】:NetworkCredential working for POST but not GETNetworkCredential 适用于 POST 但不适用于 GET
【发布时间】:2013-11-08 04:14:42
【问题描述】:

我正在调用使用 Windows 身份验证的 webAPI Web 服务。我在我的开发环境中使用这个代码,因为我是从一个不在域中的盒子开发的。

 var req = (HttpWebRequest)WebRequest.Create(url);
 req.Credentials = new NetworkCredential("username", "password", "domain");
 req.Method = WebRequestMethods.Http.Post; //or get

当我发帖时这很好用,但是当我想要获取它时它不起作用。

当我在网络浏览器中访问 get 的 url 时,它会按预期要求输入我的用户名和密码。我正确输入了用户名和密码,GET 工作正常。

【问题讨论】:

    标签: c# asp.net authentication asp.net-web-api networkcredentials


    【解决方案1】:

    尝试以下基本身份验证:

    string credentials = String.Format("{0}:{1}", username, password);
    byte[] bytes = Encoding.ASCII.GetBytes(credentials);
    string base64 = Convert.ToBase64String(bytes);
    string authorization = String.Concat("Basic ", base64);
    req.Headers.Add("Authorization", authorization);
    

    【讨论】:

      猜你喜欢
      • 2021-09-08
      • 2017-01-25
      • 2020-05-26
      • 1970-01-01
      • 1970-01-01
      • 2020-06-30
      • 1970-01-01
      • 1970-01-01
      • 2018-03-06
      相关资源
      最近更新 更多