2010-06-02 4 views
0

J'ai besoin d'aide pour l'authentification lors de l'utilisation du Web ReportViewer pour afficher les rapports SSRS.Authentification Web ReportViewer

Dans IIS, j'ai uniquement défini "Authentification Windows" et désélectionné "Accès anonyme" et les autres vérifications dans l'onglet Sécurité du répertoire. Le résultat dans mon site Web est que WindowsIdentity.GetCurrent() renvoie l'utilisateur ASPNET et Request.LogonUserIdentity le compte de domaine de l'utilisateur qui s'est connecté. Sur la page qui héberge le contrôle ReportViewer, j'emprunte par programme l'Request.LogonUserIdentity, puis définissez tous les propriétés de rapport/serveur et actualisent le ServerReport, cependant cela renvoie le message "La demande a échoué avec le statut HTTP 401: non autorisé". erreur et je suis sûr à 100% que Request.LogonUserIdentity a accès au rapport. Pour prouver que l'emprunt d'identité a fonctionné, WindowsIdentity.GetCurrent() renvoie le même utilisateur que Request.LogonUserIdentity après l'emprunt d'identité et j'utilise la même usurpation d'identité lorsque j'ai besoin d'interroger la base de données, juste avec un utilisateur spécifique.

J'ai remarqué que sur le ReportViewer1, la propriété ServerReport a une propriété pour ImpersonationUser, mais je ne suis pas en mesure de définir cela et ne trouve pas où.

Quelqu'un peut-il jeter de la lumière s'il vous plaît! Je travaille sur cela depuis des jours maintenant ....

Répondre

1

On ne sait pas pourquoi vous avez besoin de faire vous-même l'usurpation d'identité. Si vous utilisez l'authentification Windows et avez désactivé l'accès anonyme, laissez simplement ASP.NET transmettre les informations d'identification de l'utilisateur final à Reporting Server. Essayez d'ajouter l'élément <identity> à votre fichier web.config:

<identity impersonate="true" /> 

Une autre question que vous pourriez rencontrez (si votre serveur de rapports est sur une autre machine à votre serveur web) est le NTLM double-hop problem et vous devrez peut-être configurer Kerberos afin de prendre en charge la délégation des informations d'identification sur plusieurs machines.

Questions connexes