点击此处---> 群内免费提供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中保存的内容
任何人都可以提出任何我们可以尝试使其起作用的建议吗?
嗨,
我不确定100%,但是SQL Server配置管理器中的SQL Server选项"强制加密"可以解决这个问题。 它告诉SQL Server仅在客户端连接时接受并建立加密连接。 有关更多详细信息,请参见此知识库文章:链接
注意
Class
嗨,感谢您,我们的客户的意图是要求连接到SQL Server的所有应用程序都必须通过加密连接到SQL,这就是为什么我们要修改应用程序以进行此更改但不能切换 SQL Server强制加密,直到更改了所有应用程序以建立加密连接为止。
但是,我认为我们在修改主应用程序以使用加密连接以及使用Crystal Reports的打印引擎时在测试环境中测试了该选项,我认为我们的经验是,如果将SQL设置为对其进行强制加密, 只会拒绝未加密的连接,也不会使连接默认为加密。 因此,由于我们无法在水晶报表连接上设置加密属性,因此当前编码的打印引擎随后无法连接。
一周热门 更多>