Bonjour,
sur un portail intranet (asp.net 2.0, windows server 2003, sql server 2008), j'affiche des rapports provenant de Reporting Services.
Je les affiche en utilisant l'accès par URL et en incluant les rapports dans une balise <img>
Pour que tous les utilisateurs puissent avoir accès à l'affichage du rapport sur la page du portail, dans reporting services, j'ai donnés les droits de lecture au groupe "AD\Domain Users" qui correspond à tous les utilisateurs du domaine.
Je souhaite modifier cela afin se sécuriser les rapports dans reporting services.
Pour cela, j'ai créé un compte qui peut visualiser les rapports et je souhaite utiliser ce compte dans le portail pour accéder aux rapports.
La gestion de droits d'accès aux rapports se ferait donc à partir de mon portail.
Pour cela, je dois modifier la façon dont j'inclue mes rapports.
En cherchant, j'ai trouvé comment faire des requêtes en passant des credentials différents, mais cela ne fonctionne pas.
Voici mon code:
Malheureusement, dès je passe par le GetResponse, j'obtiens une erreur 401: Non autorisé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 Boolean ImageExists(String imgPath) { System.Net.HttpWebRequest netCall = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(imgPath); System.Net.CredentialCache cache = new System.Net.CredentialCache(); cache.Add(new Uri(imgPath), "Basic", new System.Net.NetworkCredential("nomducompte", "passwordducompte", "AD")); netCall.Credentials = cache; netCall.Proxy.Credentials = cache; netCall.Timeout = 1000; System.Net.HttpWebResponse resp = null; try { resp = (System.Net.HttpWebResponse)netCall.GetResponse(); if (resp.StatusCode == System.Net.HttpStatusCode.OK) { return true; } } catch (System.Exception) { return false; } return false; }
J'ai regardé les logs du serveur, la connexion semble bien s'opérer avec le login/mot de passe (success audit sur la connexion).
Du coup, je ne sais pas du tout comment faire. Peut être que j'ai loupé une config quelque part ?
Pour info, j'ai du modifier le fichier, rsreportreportserver.config du serveur Reporting Services pour qu'il accepte des connexions différentes (Basic), par défaut il est sur NTLM.
J'espère avoir été clair. Aussi, j'ai posté ici car mon code est en C# mais peut être que cela doit être posté aussi coté Reporting Services.
Partager