使用加密连接连接到SQL数据库

2020-08-31 05:53发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我们在Visual Studio...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我们在Visual Studio 2010中运行了一些标准.Net代码,以运行Crystal 2016报表(及更早版本),这些报表使用13.0.21 Crystal Runtime调用SQL存储过程,目前这些功能都非常不错。 我们想对SQL连接应用加密。 如果在Crystal Report本身的连接属性中,我们在OLE DB(ADO)连接上设置属性,请使用"数据加密= -1和信任服务器证书= -1",然后在运行报表时会创建一个加密的SQL连接。 但是我们的客户有数百个报告,因此我们不希望他们更改每个报告来执行此操作,并且他们的某些报告在报告中具有ODBC(RDO)连接,该连接似乎不支持加密(至少在 这些属性设置)。 因此,我们尝试在.Net中动态修改连接。

我们的原始基本代码是

私人子AddConnectionInfo()

昏暗的crTables AsTables

将tableLogonInfos设置为新的TableLogOnInfos()

将connectionInfo设置为新的ConnectionInfo()

将tableLogonInfo设为新的TableLogOnInfo()

connectionInfo.ServerName = _serverName

connectionInfo.DatabaseName = _databaseName

connectionInfo.UserID = _userName

connectionInfo.Password = _password

crTables = Report.Database.Tables

每个crTable作为crTables中的CrystalDecisions.CrystalReports.Engine.Table

tableLogonInfo = crTable.LogOnInfo.Clone()

tableLogonInfo.ConnectionInfo = connectionInfo

tableLogonInfo.TableName = CleanTableName(tableLogonInfo.TableName)

crTable.ApplyLogOnInfo(tableLogonInfo)

crTable.Location = tableLogonInfo.TableName

下一个crTable

结束子

我们认为我们尝试了所有Googleable选项,将LogonInfo.ConnectionInfo属性和LogonProperties设置为与已保存了加密属性的模型Crystal Report完全匹配。 该报告可以继续正常运行,但是它会根据报告中保存的连接建立一个SQL连接,因此,如果该连接是ODBC(RDO)未加密的连接,则会执行该操作。

如果我们调试代码,就好像在ApplyLogonInfo调用之后一样,属性将设置为已修改,但是当执行下一行代码时,相关属性似乎将恢复为正在运行的Crystal Report中保存的内容

任何人都可以提出任何我们可以尝试使其起作用的建议吗?

2条回答
宇峰Kouji
2020-08-31 06:29

嗨,

我不确定100%,但是SQL Server配置管理器中的SQL Server选项"强制加密"可以解决这个问题。 它告诉SQL Server仅在客户端连接时接受并建立加密连接。 有关更多详细信息,请参见此知识库文章:链接

注意

Class

一周热门 更多>