我正在使用Classic ASP和SQL Server 2008 R2开发应用程序。我们正在使用SSRS进行报告。现在数据源根据用户而变化。我一直在使用connectionstring的参数。它工作正常,但问题是URL中显示的连接字符串。有没有办法隐藏它?或者,还有更好的方法。 请帮助。
答案 0 :(得分:0)
是 - 将表单上的方法更改为POST
并使用Request.Form
语法代替Request.QueryString
:
<form id="myForm" method="post" action="myPage.asp">
<label for="txtBox">Type something</label>
<input type="text" id="txtBox" name="txtBox" />
</form>
<%
Dim value
value = Cstr(Request.Form("txtBox"))
If value <> "" then
'Do your processing
End if
%>
- 编辑 -
老实说,我不会像这样在我的表单上存储我的连接字符串。将它存储在Application级别变量中会好得多,如下所示:
Application("CON_STRING") = "...blahblahblah..."
这应该存储在Global.asa
*文件的Application_OnStart
事件中。
* 为w3schools链接道歉 - 那是当时最好的!
- 编辑2 -
尝试使用iframe
显示信息...
<form id="frmRender" action="ABCD/ReportServer?/Reports/rptSalesReport.rpt"; method="post" target="_blank">
<input type="hidden" name="rs:Command" value="Render">
<input type="hidden" name="rc:LinkTarget" value="_blank">
<input type="hidden" name="rs:Format" value="HTML4.0">
<input type="hidden" name="rc:Parameters" value="False">
<input type="hidden" name="ConnectionString" value="<%=Session("ConnectionString")%>">
<input type="hidden" name="StartDate" value="<%=StartDate%>">
<input type="hidden" name="EndDate" value="<%=EndDate%>">
<a id="linkInfo" href="javascript:generateSsrs();">Generate Report</a>
<iframe id="ssrsReport" class="reportHeightWidth"></iframe>
</form >
<script language="javascript">
function genreateSsrs() {
document.getElementById("ssrsReport").src = "ABCD/ReportServer?/Reports/rptSalesReport.rpt?rs:Command=Render&rc:LinkTarget=top&rs:Format=HTML4.0&rc:Parameters=False&ConnectionString=<%=Server.URLEncode(Session("ConnectionString"))%>&StartDate=<%=StartDate%>&EndDate=<%=EndDate%>";
}
</script>
这是一个粗略的版本,但它没有经过测试,因此可能需要进行一些调整。
答案 1 :(得分:0)
在您的代码中,使用以下代码
="Data Source="+Parameters!DatabaseServerName.Value+";Initial Catalog="&Parameters!DatabaseCatalogName.Value