databasevb.netcrystal-reportstrustedconnection

How to Detect Trusted Connection in Crystal Reports using VB.NET?


I have some Crystal Reports connecting to a Sql Server db that I would like to detect whether the connection is trusted or whether I need to supply the log on info (reports are not supplied by me so I can't control the connect method). If I just blindly supply login credentials, it won't connect if it is a trusted connection.

The following does not work:

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

It gives the following error: Operator '=' is not defined for type 'IConnectionProperty' and type 'Boolean'.

I cannot find how create a construct in vb.net for IConnectionProperty. I can't find any documents from Crystal that explain it. I am using Crystal Reports XI - Developer


Solution

  • I think i found the answer. By using the property ConnectBufferString

    Like this:

    Console.WriteLine(oRpt.Database.Tables(1).ConnectBufferString.ToString)
    

    It will give you a string like this

    Provider=SQLOLEDB;;Data Source=MYPC\SQLEXPRESS;;Initial Catalog=sample_db;;User ID=;;Password=;;Integrated Security=-1;;Use DSN Default Properties=0;;Locale Identifier=1033;;Connect Timeout=15;;General Timeout=0;;OLE DB Services=-5;;Current Language=;;Initial File Name=;;Use Encryption for Data=0;;Replication server name connect option=;;Tag with column collation when possible=0

    You just look for the following:

    Integrated Security=-1 = Trusted Connection

    Integrated Security=0 = Untrusted Connection

    Hope this helps someone else since I wasted a few hours looking.