J'ai une application où je rends un rapport SSRS via le service Web SOAP. Ce que je tente de faire est de transmettre les informations d'identification au service ReportExecutionService qui sera utilisé par la source de données pour l'accès à la base de données.SSRS DataSourceCredentials et l'authentification Windows
Cela fonctionne actuellement en utilisant l'authentification SQL. Ce que j'essaie de comprendre, c'est comment obtenir ce travail pour un utilisateur qui est configuré pour la base de données en utilisant l'authentification Windows. Le compte d'utilisateur est un compte d'utilisateur de domaine et j'ai ajouté cet utilisateur à la base de données et au rôle db_owner.
Quand je passe les informations d'identification pour un compte d'utilisateur Windows et exécutez SQL Profiler je reçois le message d'erreur suivant:
Login failed for user 'ourdomain\User'. Reason: Attempting to use an NT account name with SQL Server Authentication. [CLIENT: <local machine>]
Le code suivant est le code (en abrégé) qui fonctionne en passant les informations d'identification pour une l'utilisateur SQL, mais à défaut avec le message ci-dessus lors du passage des informations d'identification utilisateur de domaine:
public static byte[] RunReport(string reportPath, List<ReportParameter> reportParameters, ReportOutputType outputType)
{
ReportExecutionService reportExecutionService = new ReportExecutionService();
var creds = new DataSourceCredentials[1];
creds[0] = new DataSourceCredentials() { DataSourceName = "DynamicDataSource", UserName = ReportUserDomain + @"\" + ReportUserAccount, Password = ReportUserPassword };
reportExecutionService.LoadReport(reportPath, null);
reportExecutionService.SetExecutionCredentials(creds);
return reportExecutionService.Render(Enum.GetName(typeof(ReportOutputType), outputType), GetDeviceInfo(outputType), out extension, out mimetype, out encoding, out warning, out streamids);
}
Notez que j'ai ajouté le paramètre ReportUserDomain aux DataSourceCredentials pour essayer d'obtenir que cela fonctionne pour Windows Auth, le code qui est actuellement workin g pour l'authentification SQL n'inclut pas cette variable.
Toute aide est grandement appréciée.