您好我们有一个内部基于vb.net的应用程序,它允许用户加载和访问我们在文件服务器上生成的报告。创建它们时,它们是使用ODBC连接在visual studio设计器中创建的。我们已决定使用asp.net将此应用程序移植到基于Web的系统,但遇到了障碍。网页上的查看器将加载报告(我们可以通过某些报告上显示的日期标准来验证),但会出现一个登录页面,要求我们提供以下字段;服务器名称,数据库名称,用户名和密码。作为服务器名称的顶部字段不正确,因为它不是有效的主机名,遗憾的是它不会让我们更改它。我已尝试各种in-code方法来覆盖此消息。我已在代码中设置凭据,禁用了代码中的登录,我甚至将确切的ODBC连接设置复制到运行该站点的服务器上。有没有人遇到像这样的水晶报告观众的问题?
我尝试解决此问题的一些代码是创建凭据并为每个表设置它们。
For Each CrTable In CrTables
crTableLogonInfo = CrTable.LogOnInfo
crTableLogonInfo.ConnectionInfo =
ConnInfo
CrTable.ApplyLogOnInfo(crTableLogonInfo)
Next
答案 0 :(得分:0)
首先,您需要将参数作为键添加到Web配置中,如下所示:
<add key="ServerName" value="Your Server"/>
<add key="DataBaseName" value="Your DB Name"/>
<add key="DatabaseUser" value="DB User"/>
<add key="DatabasePassword" value="DB Password"/>
其次,在报告查看器文件中,在绑定报告方法中添加以下代码:
Dim SERVER_NAME As String = ConfigurationManager.AppSettings("ServerName").ToString()
Dim DATABASE_NAME As String = ConfigurationManager.AppSettings("DataBaseName").ToString()
Dim DatabaseUser As String = ConfigurationManager.AppSettings("DatabaseUser").ToString()
Dim DatabasePassword As String = ConfigurationManager.AppSettings("DatabasePassword").ToString()
最后添加以下代码:
rptobj.SetDatabaseLogon(DatabaseUser, DatabasePassword, SERVER_NAME, DATABASE_NAME)
*一些开发人员发现此方法不安全,因为您显示的是可以对其进行加密的数据库凭据,然后针对安全问题对其进行解密。