Как обнаружить доверенное соединение в Crystal Reports с помощью VB.NET?
-
22-09-2019 - |
Вопрос
У меня есть несколько Crystal Reports, подключающихся к базе данных Sql Server, и я хотел бы определить, является ли соединение доверенным или мне нужно предоставить информацию для входа в систему (отчеты не предоставляются мной, поэтому я не могу контролировать метод подключения).Если я просто слепо предоставлю учетные данные для входа, оно не будет подключаться, если это доверенное соединение.
Не работает следующее:
oRpt = oCR.OpenReport("C:\MyReport.rpt")
if oRpt.Database.Tables(1).ConnectionProperties.Item("Integrated Security") = True then
'trusted connection
else
'supply login credentials
end if
Выдает следующую ошибку:Оператор «=» не определен для типа «IConnectionProperty» и типа «Boolean».
Я не могу найти, как создать конструкцию в vb.net для IConnectionProperty.Я не могу найти никаких документов от Crystal, объясняющих это.Я использую Crystal Reports XI — разработчик
Решение
Думаю, я нашел ответ.С помощью свойства ConnectBufferString
Так:
Console.WriteLine(oRpt.Database.Tables(1).ConnectBufferString.ToString)
Это даст вам такую строку
Provider=SQLOLEDB;;Источник данных=MYPC\SQLEXPRESS;;Начальный каталог=sample_db;;Идентификатор пользователя=;;Пароль=;;Встроенная безопасность=-1;;Использовать свойства DSN по умолчанию=0;;Идентификатор локали=1033;;Подключиться Таймаут=15;;Общий таймаут=0;;Службы OLE DB=-5;;Текущий язык=;;Исходное имя файла=;;Использовать шифрование для данных=0;;Имя сервера репликации Connect option=;;Тег с сопоставлением столбцов когда возможно = 0
Вы просто ищете следующее:
Интегрированная безопасность=-1 = доверенное соединение
Интегрированная безопасность = 0 = ненадежное соединение.
Надеюсь, это поможет кому-то еще, поскольку я потратил несколько часов на поиски.