...(cha barba direte voi).. pensate un po' il
sottoscritto che ci litiga tutti i giorni :D
Cominciamo con le buone notizie: NON SI PUO'
Dopo aver spulciato per giorni la KB di Crystal e svariati articoli su
internet sono giunto alla conclusione che il cambio di metodologia di
autenticazione a Run-Time non è possibile.
La degna conclusione è:
- L'applicazione utilizza Integrated Security per accedere ai dati, quindi
il report deve utilizzare Integrated Security: ne consegue che il report deve
essere "disegnato" direttamente utilizzando Integrated Security;
- L'applicazione utilizza la sicurezza integrata di SQL, perchè ad esempio
siete in workgroup, il report deve utilizzare la sicurezza integrate si SQL:
il report deve essere disegnato connettendosi alla base dati utilizzando la
sicurezza integrata di SQL.
Ho smanettato per ore con le classi TableLogonInfo e
ConnectionInfo, con i vari, svariati e sparsi un po'
ovunque metodi SetDatabaseLogon(...), ma nessuno a sortito gli
effetti desiderati.
Spulciando con il debugger si scopre che, dopo aver passato
le presunte credenziali con ConnectionInfo, aver ciclato su tutte le
tabelle e tutti i sottoreport e aver applicato TableLogonInfo e ConnectionInfo,
il ReportDocument resta infarcito di classi NameValuePair2 con
Name="Integrated Security" e Value="True"... e uno comicia a chiedersi ma
come può funzionare... infatti se durante l'iterazione sulle tabelle si
prova ad utilizzare il Table.TestConnectivity() questo ritorna
sempre e solo false. :-(
Alla fine preso dalla disperazione ho cominciato a sostituire questi
NemeValuePair2, ove possibile direttamente e altrove tramite reflection, ma
comunque nulla è cambiato.
Quindi come risolvere l'inghippo... in perfetto stile OOP, implementando i
Pattern più famosi ho deciso di disegnare 2 report distinti :-) e a
run-time decidere di aprirne uno piuttosto che un'altro.
have a nice day,
m.
whynot [ at ] topics [ dot ] it
These postings are provided "AS IS" with no warranties, and confer no
rights.
The views expressed on this weblog are mine alone.