SSRS网址编码

时间:2015-09-23 20:11:39

标签: vb.net reporting-services ssrs-2012 ssrs-expression

我在SSRS中有表达式的问题

项目

  

使用SSRS表达式和自定义代码进行加密,然后确定   目标是基于环境的超链接。

我们取得的成就

  

我们使用导入到的自定义库创建了一个自定义DLL   报告属性中的引用

     

从Expression中我们编写了Switch语句来确定   目标如下:

表达

=Switch
(
Globals.ReportServerUrl = "https://devportal2.xxx.com/sites/Co" , "https://stage.connect.com/secure/clr/er=" & Code.EncryptRin(Fields!Member_Member_ID_.Value),
Globals.ReportServerUrl = "https://testportal2.xxx.com/sites/Co" , "https://stage.connect.com/secure/clr/er=" & Code.EncryptRin(Fields!Member_Member_ID_.Value),
Globals.ReportServerUrl = "https://stageportal2.xxx.com/sites/Co" , "https://www.connect.com/secure/clr/er=" & Code.EncryptRin(Fields!Member_Member_ID_.Value),
Globals.ReportServerUrl = "https://stageportal2.xxx.com/sites/Co" , "https://www.connect.com/secure/clr/er=" &
 Code.EncryptRin(Fields!Member_Member_ID_.Value),true, "https://stage.connect.com/secure/clr/er=" + Code.EncryptRin(Fields!Member_Member_ID_.Value)
)

自定义代码

Public Function UserName()
Try
    Return Report.User!UserID
  Catch
    Return "System"
  End Try
End Function


Public Function EncryptRin(ByVal Rin as string) As String
    Return Encryption.AESConsole.EncryptText(Rin)
End Function

在上面有两个函数,一个是不相关的,也就是Username()一个。第二个是我们需要编码的部分。

我需要帮助

我们需要先对URL的加密部分进行编码,然后再将其发送出去。但我对这需要发生的事情感到有些困惑。

所以我的理解是我需要从Expression中执行此操作,因为这是我们引用它的地方。如果那不是它发生的地方,那么在它到达表达式之前,在上面的函数中引用参数的语法是什么样的呢?

有人这样做过吗?非常感谢帮助。

1 个答案:

答案 0 :(得分:3)

在VB.net中,您应该能够在加密数据之前使用System.Uri.EscapeDataString对数据进行编码。像这样:

Public Function EncryptRin(ByVal Rin as string) As String
    Return Encryption.AESConsole.EncryptText(Uri.EscapeDataString(Rin))
End Function