两步身份验证C#通过SSIS 2010访问JSON API

两步身份验证C#通过SSIS 2010访问JSON API,ssis,Ssis,我已经在SSIS 2010中通过基本身份验证访问了JSON API。。。用户名和密码,使用下面的脚本 我需要修改下面的脚本,以包括传递客户端机密和客户端ID的凭据 任何人都知道如何为SSIS 2010修改此内容。我已经尝试过了,但没有任何乐趣,所以到目前为止我已经粘贴了工作代码 请帮忙 WebRequest req = WebRequest.Create(@"https://sub.domain.com/api/operations? param=value&param2=va

我已经在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;

这可能取决于API的设置方式及其期望值,但就我而言,我是在创建一个:

或者,在不使用配置的情况下:

    using System.Net.Http;
    ...
    HttpClientHandler handler = new HttpClientHandler { Credentials = new NetworkCredential("MyUserName", "MyPassword") };
    HttpClient apiClient = new HttpClient(handler);
然后使用客户端打电话。我是这样做的:

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

这可能取决于API的设置方式及其期望值,但就我而言,我是在创建一个:

或者,在不使用配置的情况下:

    using System.Net.Http;
    ...
    HttpClientHandler handler = new HttpClientHandler { Credentials = new NetworkCredential("MyUserName", "MyPassword") };
    HttpClient apiClient = new HttpClient(handler);
然后使用客户端打电话。我是这样做的:

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

我推测这可能是某种oauth或oauth2授权,因为您讨论的是客户机密和Id。如果是这种情况,那么它就不像只修改几行代码那么简单了。您将看到添加一个处理构造授权头的附加类。所有这些都依赖于您正在与之交互的特定API,我希望它有文档。嗨……我确实尝试过使用ZappyS,效果很好。这使用OAUTH。我需要给这个编码。在没有第三方的情况下尝试这样做,也只是一个30天的过程,我推测这是某种oauth或oauth2授权,可能是因为你在谈论客户机密和Id。如果是这样的话,那就不简单了,只需要修改几行代码就可以了。您将看到添加一个处理构造授权头的附加类。所有这些都依赖于您正在与之交互的特定API,我希望它有文档。嗨……我确实尝试过使用ZappyS,效果很好。这使用OAUTH。我需要给这个编码。在没有第三方的情况下尝试这样做,这也只是一个30天的追踪。我已经为http添加了汇编参考。代码中的“Static”和“ConfigurationManager”这两个词似乎有问题。我对用C语言编写代码并不感到抱歉,您不必使用configuration manager,而且听起来您应该在字符串中硬编码凭据。但是如果您确实使用配置,您还需要使用System.Configuration添加
。另外,您根本不需要使用
static
,尽管我不知道为什么您的代码会有问题。我已经调整了我的答案。嗨,我已经为http添加了程序集引用。代码中的“Static”和“ConfigurationManager”这两个词似乎有问题。我对用C语言编写代码并不感到抱歉,您不必使用configuration manager,而且听起来您应该在字符串中硬编码凭据。但是如果您确实使用配置,您还需要使用System.Configuration添加
。另外,您根本不需要使用
static
,尽管我不知道为什么您的代码会有问题。我已经调整了我的答案。