通过URL将Connectionstring作为参数传递给SSRS

时间:2014-09-16 08:30:15

标签: url reporting-services asp-classic ssrs-2008-r2

我正在使用Classic ASP和SQL Server 2008 R2开发应用程序。我们正在使用SSRS进行报告。现在数据源根据用户而变化。我一直在使用connectionstring的参数。它工作正常,但问题是URL中显示的连接字符串。有没有办法隐藏它?或者,还有更好的方法。 请帮助。

2 个答案:

答案 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