首页 > 解决方案 > 2 步身份验证 C# 通过 SSIS 2010 访问 JSON API

问题描述

我已经在 SSIS 2010 中设法通过基本身份验证访问 JSON API ... 用户名和密码,使用下面的脚本

我需要修改下面的脚本,以包括传递客户端密码和客户端 ID 的凭据

任何人都知道如何为 SSIS 2010 修改这个。我没有高兴地尝试过,所以到目前为止我已经粘贴了工作代码

请帮忙

    WebRequest req = WebRequest.Create(@"https://sub.domain.com/api/operations?  param=value&param2=value");
    req.Method = "GET";
    req.Headers["Authorization"] = "Basic " + Convert.ToBase64String  (Encoding.Default.GetBytes("username:password"));
    //req.Credentials = new NetworkCredential("username", "password");
    HttpWebResponse resp = req.GetResponse() as HttpWebResponse;

标签: ssis

解决方案


这可能取决于 API 的设置方式和预期,但就我而言,我在创建HttpClientHandler时这样做了:

    using System.Net.Http;
    using System.Configuration;
    ...
    HttpClientHandler handler = new HttpClientHandler { Credentials = new NetworkCredential(ConfigurationManager.AppSettings["API.UserName"].ToString(), ConfigurationManager.AppSettings["API.Password"].ToString()) };
    HttpClient apiClient = new HttpClient(handler);

或者,不使用配置:

    using System.Net.Http;
    ...
    HttpClientHandler handler = new HttpClientHandler { Credentials = new NetworkCredential("MyUserName", "MyPassword") };
    HttpClient apiClient = new HttpClient(handler);

然后使用客户端拨打电话。这是我的做法:

    HttpResponseMessage httpResponse = apiClient.GetAsync(curl).Result;

推荐阅读