OAuth 2.0 iniciar um token de acesso usando CData ADO.NET Provider for OData

Exemplo de string de conexão com OData usando CData ADO.NET Provider for OData

Exemplo de string de conexão

Essa é uma string de conexão CData ADO.NET Provider for OData para se conectar com OData.

OAuth 2.0 iniciar um token de acesso

URL=http://Servidor;OAuth Version=2.0;Initiate OAuth=true;OAuth Client ID=myRegisteredClientID;OAuth Client Secret=secretCodeRetrievedUponClientRegistration;OAuth Authorization URL=https://accounts.google.com/o/oauth2/auth;OAuth Access Token URL=https://accounts.google.com/o/oauth2/token;

Isso funciona apenas para aplicações de desktop. A conexão não armazenará o token de acesso e a autorização do aplicativo acontecerá em cada conexão.

Alternativamente, use o procedimento armazenado GetAccessToken para recuperar manualmente o token de acesso e criar novas conexões fornecendo o token no parâmetro da string de conexão "OAuth Access Token".

Conexão através de diferentes linguagens

C#

Exemplo de código em C# de conexão com OData usando CData ADO.NET Provider for OData:

using System;
using System.Data.CData.OData;

class DatabaseConnection {
    static void Main() {
        // Define a string de conexão OData usando CData ADO.NET Provider for OData
        string connectionString = "URL=http://Servidor;OAuth Version=2.0;Initiate OAuth=true;OAuth Client ID=myRegisteredClientID;OAuth Client Secret=secretCodeRetrievedUponClientRegistration;OAuth Authorization URL=https://accounts.google.com/o/oauth2/auth;OAuth Access Token URL=https://accounts.google.com/o/oauth2/token;";

        using (ODataConnection connection = new ODataConnection(connectionString)) {
            try {
                // Abre a conexão
                connection.Open();

                Console.WriteLine("Conexão aberta com sucesso!");

                //
                // INSIRA SEU CÓDIGO AQUI
                //
            }
            catch (ODataException ex) {
                // Erros específicos do ODataException
                Console.WriteLine("Erro: " + ex.Message);
            }
            catch (Exception ex) {
                // Outros erros
                Console.WriteLine("Erro: " + ex.Message);            
            }
            finally {
                // Fecha a conexão
                if (connection != null) {
                    connection.Close();
                    Console.WriteLine("Conexão fechada.");
                }
            }
        }
    }
}

Alternativamente, você pode usar o código abaixo, que usa a classe DbProviderFactory:

using System;
using System.Data.Common;

class DatabaseConnection {
    static void Main() {
        /// Define a string de conexão OData usando CData ADO.NET Provider for OData
        string connectionString = "URL=http://Servidor;OAuth Version=2.0;Initiate OAuth=true;OAuth Client ID=myRegisteredClientID;OAuth Client Secret=secretCodeRetrievedUponClientRegistration;OAuth Authorization URL=https://accounts.google.com/o/oauth2/auth;OAuth Access Token URL=https://accounts.google.com/o/oauth2/token;";

        // Cria o objeto factory usando o namespace System.Data.CData.OData
        DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.CData.OData");

        using (DbConnection connection = factory.CreateConnection()) {
            if (connection == null) {
                Console.WriteLine("Não foi possível criar a conexão.");
                return;
            }

            connection.ConnectionString = connectionString;

            try {
                // Abre a conexão
                connection.Open();
                Console.WriteLine("Conexão aberta com sucesso!");

                //
                // INSIRA SEU CÓDIGO AQUI
                //
            }
            catch (DbException ex) {
                // Erros específicos do DbException
                Console.WriteLine("Erro: " + ex.Message);
            }
            catch (Exception ex) {
                // Outros erros
                Console.WriteLine("Erro: " + ex.Message);
            }
            finally {
                // Fecha a conexão
                if (connection != null) {
                    connection.Close();
                    Console.WriteLine("Conexão fechada.");
                }
            }
        }
    }
}

VB.NET

Exemplo de código em VB.NET de conexão com OData usando CData ADO.NET Provider for OData:

Imports System
Imports System.Data.CData.OData

Public Class DatabaseConnection
    Public Shared Sub Main()
        ' Define a string de conexão OData usando CData ADO.NET Provider for OData
        Dim connectionString As String = "URL=http://Servidor;OAuth Version=2.0;Initiate OAuth=true;OAuth Client ID=myRegisteredClientID;OAuth Client Secret=secretCodeRetrievedUponClientRegistration;OAuth Authorization URL=https://accounts.google.com/o/oauth2/auth;OAuth Access Token URL=https://accounts.google.com/o/oauth2/token;"

        Using connection As New ODataConnection(connectionString)
            Try
                ' Abre a conexão
                connection.Open()

                Console.WriteLine("Conexão aberta com sucesso!")

                '
                ' INSIRA SEU CÓDIGO AQUI
                '

            Catch ex As ODataException
                ' Erros específicos do ODataException
                Console.WriteLine("Erro: " & ex.Message)
            Catch ex As Exception
                ' Outros erros
                Console.WriteLine("Erro: " & ex.Message)
            Finally
                ' Fecha a conexão
                If connection IsNot Nothing Then
                    connection.Close()
                    Console.WriteLine("Conexão fechada.")
                End If
            End Try
        End Using
    End Sub
End Class

Alternativamente, você pode usar o código abaixo, que usa a classe DbProviderFactory:

Imports System
Imports System.Data.Common

Public Class DatabaseConnection
    Public Shared Sub Main()
        ' Define a string de conexão OData usando CData ADO.NET Provider for OData
        Dim connectionString As String = "URL=http://Servidor;OAuth Version=2.0;Initiate OAuth=true;OAuth Client ID=myRegisteredClientID;OAuth Client Secret=secretCodeRetrievedUponClientRegistration;OAuth Authorization URL=https://accounts.google.com/o/oauth2/auth;OAuth Access Token URL=https://accounts.google.com/o/oauth2/token;"

        ' Cria o objeto factory usando o namespace System.Data.CData.OData
        Dim factory As DbProviderFactory = DbProviderFactories.GetFactory("System.Data.CData.OData")

        Using connection As DbConnection = factory.CreateConnection()
            If connection Is Nothing Then
                Console.WriteLine("Não foi possível criar a conexão.")
                Return
            End If

            connection.ConnectionString = connectionString

            Try
                ' Abre a conexão
                connection.Open()
                Console.WriteLine("Conexão aberta com sucesso!")

                '
                ' INSIRA SEU CÓDIGO AQUI
                '

            Catch ex As DbException
                ' Erros específicos do DbException
                Console.WriteLine("Erro: " & ex.Message)
            Catch ex As Exception
                ' Outros erros
                Console.WriteLine("Erro: " & ex.Message)
            Finally
                ' Fecha a conexão
                If connection IsNot Nothing Then
                    connection.Close()
                    Console.WriteLine("Conexão fechada.")
                End If
            End Try
        End Using
    End Sub
End Class