Кодировка URL-адреса SSRS

У меня проблема с выражением в SSRS

Проект

ИСПОЛЬЗУЙТЕ выражения SSRS и пользовательский код для шифрования, а затем определите цель для гиперссылки на основе среды.

Чего мы достигли

Мы создали пользовательскую библиотеку DLL, используя пользовательскую библиотеку, импортированную в свойства ссылок в отчете.

Затем внутри выражения мы написали оператор 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-адреса, прежде чем мы сможем его отправить. Но я немного смущен тем, ГДЕ это должно произойти.

Насколько я понимаю, мне нужно сделать это из выражения, потому что именно там мы на него ссылаемся. Если это не так, как будет выглядеть синтаксис для ссылки на параметр в приведенной выше функции до того, как он попадет в выражение?

Кто-нибудь сделал это? Помощь очень ценится.


person Hituptony    schedule 23.09.2015    source источник
comment
В чем проблема? Похоже, он должен работать. Ваш зашифрованный MemberID добавляется к любому URL-адресу, используемому в Выражении с SWITCH.   -  person Hannover Fist    schedule 24.09.2015
comment
Мне нужно закодировать строку, прежде чем она будет зашифрована. @ГанноверФист   -  person Hituptony    schedule 24.09.2015


Ответы (1)


В VB.net вы должны иметь возможность использовать System.Uri.EscapeDataString для кодирования данных перед их шифрованием. Что-то вроде этого:

Public Function EncryptRin(ByVal Rin as string) As String
    Return Encryption.AESConsole.EncryptText(Uri.EscapeDataString(Rin))
End Function
person Ansgar Wiechers    schedule 24.09.2015