DataConnector | ComponentOne
In This Topic
    Authorization
    In This Topic

    OAuth is an open-standard authorization protocol that creates a platform for unlinked servers and services to allow authenticated access to data sources without sharing private credentials. OAuth is used in a wide variety of applications for user authentication. For more information on OAuth and types of credentials, refer to the OAuth Authorization topic.

    To connect to a JSON server that requires OAuth authentication, provide the following properties:

    C#
    Copy Code
    //JSON server protected by oauth 2.0 authentication
    const string TokenEndpoint = @"http://****/****/****";
    const string URI = @http://****/****/****;const string ClientId = @"yourid";
    const string ClientSecret = @"yoursecretcode";
    const string Scope = @"yourscope";
    const string Username = @"yourusername";
    const string Password = @"yourpassword";

    In the following code, the OAuthClientId, OAuthClientSecret, and other attributes are set to fetch the data using properties of the C1JsonConnection class.

    C#
    Copy Code
    static string connectionStringForOAuth = @$OAuth Token Endpoint={TokenEndpoint}; Uri={URI};
           OAuth Client Id={ClientId}; OAuth Client Secret={ClientSecret}; OAuth Scope={Scope};
           Username={Username}; Password={Password};                
    static void SelectDocumentWithOAuth()
    {
        Console.WriteLine("Query all Books via OAuth...");
        using (var con = new C1CSVConnection(connectionStringForOAuth))
        {
            con.Open();
            var table = con.GetSchema("columns", new string[] { "value" });
            ShowDataTable(table);
            var cmd = con.CreateCommand();
            cmd.CommandText = "Select * From value";
            var reader = cmd.ExecuteReader();
        }
    }               
    static void ShowDataTable(DataTable table, int length = 25)
    {
        foreach (DataColumn col in table.Columns)
        {
            Console.Write("{0,-" + length + "}", col.ColumnName);
        }
        Console.WriteLine();
    
        foreach (DataRow row in table.Rows)
        {
            foreach (DataColumn col in table.Columns)
            {
                if (col.DataType.Equals(typeof(DateTime)))
                    Console.Write("{0,-" + length + ":d}", row[col]);
                else if (col.DataType.Equals(typeof(decimal)))
                    Console.Write("{0,-" + length + ":C}", row[col]);
                else
                    Console.Write("{0,-" + length + "}", row[col]);
            }
            Console.WriteLine();
        }
    }