Logon Failed con crystal report windows application (vb.net)

venerdì 03 settembre 2010 - 09.54
Tag Elenco Tags  VB.NET  |  .NET 3.5  |  Windows XP  |  Visual Studio 2008  |  SQL Server 2005  |  Office XP  |  Internet explorer 8.0  |  Crystal Reports 2008

fabiana83 Profilo | Newbie

Buongiorno a tutti,
scrivo in questa stanza perchè penso che il mio problema sia relativo alla sbagliata configurazione su sql server degli users o forse lo spero.
Cerco di spiegarmi brevemente, su un notebook ho installato sql server 2005 e visual studio 2008. Ho sviluppato in vb.net un' applicazione creando un db direttamente da visual studio collegandomi a sql server e impostato l'accesso al db con la windows authentication. Sono arivata al momento di creare il mio report fatto con crystal report sempre da visual studio. Uso il wizard, creo la connessione al db, indico la tabella dal quale prendere i dati ecc.... insomma. Nella form in cui risiede il report inserisco il codice per ribadire il server, il database name e imposto IntegratedSecurity = True. Ok in ambiente di sviluppo tutto funziona perfettamente. Il problema si presenta quando lancio il programma da un client con il quale mi loggo con un domain user diverso dal notebook. Preciso che su sqlserver sia nella security di sql sia in quela del db ho creato e configurato quest'ultimo user del client. Rimane il fatto che il programmma funziona correttamente in tutte le sue form (in cui cmq accedo, scrivo e leggo sul db) tranne che quando lancio la form del report in cui esce l'errore logon failed Description: Server SQL inesistente o accesso negato.
Sto diventando matta spero che qualcuno di voi possa indicarmi una soluzione o almeno qualche prova da fare per capire qual è il problema.
Gazie mille
Fabiana

Jok83 Profilo | Junior Member

Ciao
visto che lo da solo quando apri il report POTREBBE essere il modo in cui apriamo il report.. quando fai la load gli passi utente e password?

report.SetDatabaseLogon(user, psw)

esempio:
Dim report As New ReportDocument()
report.Load(Percorso, CrystalDecisions.Shared.OpenReportMethod.OpenReportByTempCopy)
report.Database.Tables(0).SetDataSource(dataset) ' qui io gli passo un dataset ma può non essere così sempre
report.SetDatabaseLogon(user, psw)

ciao

fabiana83 Profilo | Newbie

Ciao, grazie per aver letto la mia richiesta. No non passo nessun user e password perchè ho scelto di accedere a sql server con la windows authentication. Io ho inserito questo codice nel load della form del report:
Dim crtableLogoninfos As New TableLogOnInfos()
Dim crtableLogoninfo As New TableLogOnInfo()
Dim crConnectionInfo As New CrystalDecisions.Shared.ConnectionInfo
Dim CrTables As Tables
Dim CrTable As Table
Dim crReportDocument As New CrystalReport1()
With crConnectionInfo
.ServerName = "TN01\SQLEXPRESS"
.DatabaseName = "ProvaDB"
.IntegratedSecurity = True
End With
CrTables = crReportDocument.Database.Tables
For Each CrTable In CrTables
crtableLogoninfo = CrTable.LogOnInfo
crtableLogoninfo.ConnectionInfo = crConnectionInfo
CrTable.ApplyLogOnInfo(crtableLogoninfo)
CrTable.Location = crConnectionInfo.DatabaseName & ".dbo." & CrTable.Location.Substring(CrTable.Location.LastIndexOf(".") + 1)
Next
CrystalReportViewer1.ReportSource = crReportDocument

Applico le info a tutte le tabelle anche se in questo report uso solo 1 tabella.
Non ho messo nessun user e password perchè pensavo che leggesse lui l'utente loggato in windows e accettasse quindi la connessione al db dove nella security saranno configurati tutti i domain users. Se metto uno username e una password vorrebbe dire che il db accetta una SQL Server authentication o non ho capito io qualcosa?
Grazie, ciao
Buona giornata
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5