【问题标题】:ODBC SSPI connection fails when username is added添加用户名时 ODBC SSPI 连接失败
【发布时间】:2016-11-14 22:15:00
【问题描述】:

每当我在使用 Windows 身份验证 (SSPI) 的 Odbc PostgreSQL 连接的连接字符串中为 uid= 输入值时,我都会收到异常。

错误:

Connection problem: System.InvalidOperationException: The connection was not closed. The connection's current state is connecting.
   at System.Data.ProviderBase.DbConnectionClosedConnecting.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   at System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   at System.Data.Odbc.OdbcConnection.Open()
   at ConsoleApplication1.Program.TestMethod(String connectionMethod)

代码(程序中第一次调用 Open() 是为了测试代码):

try
         {
            using (OdbcConnection connection = new OdbcConnection(odbc_connection_string))
            {
               connection.Open();
            }
         }
         catch (Exception ex)
         {
            System.Diagnostics.Trace.WriteLine("Connection problem: " + ex);
            odbc = false;
         }

连接字符串:

odbc_connection_string = "uid=bwhuggin@CCANET;Driver={PostgreSQL Unicode};database=hostdb-4.2.0;server=localhost;port=5432;Trusted_Connection=yes";

Npgsql 连接允许输入用户名:

npgsql_connection_string = "Server=localhost;Port=5432;Database=hostdb-4.2.0;User Id=bwhuggin@CCANET;Integrated Security=true;";

【问题讨论】:

  • 尝试不使用using(.....) 声明 OdbcConnection 然后打开它会发生什么。我想你正在使用 Pwd=your password
  • 它表现出相同的行为。

标签: postgresql odbc windows-authentication uid sspi


【解决方案1】:

我不确定为什么会显示 InvalidOperationException 错误。通常我会收到 AccessViolationExceptions。

psqlodbc 9.3 驱动程序之一是此问题的根源。我将 psqlodbc 驱动程序更改为 9.5.4,并且能够在 uid 字段中输入一个值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-28
    • 1970-01-01
    • 2022-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-29
    • 1970-01-01
    相关资源
    最近更新 更多