2014-02-25 39 views
0

我正在嘗試使用SSL連接到PostgreSQL數據庫。連接要求SSLMode驗證已滿,但我使用的驅動程序(來自devart.com)支持Require作爲最高級別。是否有支持SSL連接的.net驅動程序,具有驗證完整到PostgreSQL的功能?

有沒有一種方法可以使用devart中的最新驅動程序完成此操作?如果沒有,有沒有其他的驅動程序支持這個?

我可以使用本機ODBC驅動程序來連接,這樣的連接適用於原生程序,但需要一個.net司機避免導入ODBC庫到我的.NET應用程序。

+0

您是否試過npgsql http://npgsql.projects.pgfoundry.org/ http://fxjr.blogspot.com.es/2010/04/using-ssl-client-certificates-with.html – jjchiw

+0

不,有沒有嘗試過,但在他們關於SSLMode = verify-full的文檔中找不到任何東西。因此,在嘗試其他驅動程序之前尋找一些已經使用過該軟件的人的明確指導。 devart驅動程序在沒有SSL的情況下運行良好,我擁有使用該許可證的許可證,但會稍微等一下,看看是否有其他人對此具體問題有經驗。 – vzczc

+0

是的,dotConnect for PostgreSQL支持Require模式作爲最高級別。但是,如果使用SslMode.Require並指定'SSL CA Cert'連接字符串參數,則行爲將與'verify-ca'SSL模式相同。 – Devart

回答

0

使用nPgSQLSSL=True;Sslmode=Require;實施SSL。 The enum doesn't seem to provide Verify,雖然(就像在JDBC驅動程序中一樣),但它可能總是驗證,除非被覆蓋。我沒有用它來測試。

如果需要,你可以提供一個合適的CertificateValidationCallback使用C#的API自己做一個證書驗證。

+0

這些與我正在使用的devart驅動程序可用的選項相同。我已經請devart幫忙,並且在嘗試其他驅動程序之前會看到他們要說的話。 – vzczc

+0

@vzczc好想法。也可以嘗試使用有效但有錯誤主機名的證書進行測試,看看它是否實際發生了抱怨。 –

相關問題