2008-12-16 11 views
1

J'ai une classe C# qui utilise l'espace de noms WindowsIdentity pour renvoyer les détails de l'utilisateur Active Directory actuel. Ceci est accessible via un composant WebPart sur SPS et renvoie suffisamment les valeurs d'enregistrement souhaitées spécifiques à cet utilisateur.Authentification Active Directory

J'ai une application ASP classique que je voudrais avoir hérité de cette fonctionnalité. Après l'avoir enveloppé COM et l'avoir enregistré sur le serveur, j'ai créé une page ASP classique à partir de laquelle appeler et afficher les détails dans la fenêtre du navigateur.

Mon problème est que lorsque cette page est accessible à partir d'un utilisateur authentifié sur un ordinateur client les informations que l'utilisateur qu'il affiche est celui de la machine locale.

Comment mon code modifierait donc je peux voir les détails de l'utilisateur qui accède à la page à partir d'une machine cliente?

Répondre

1

ASP classique nous ramène. :-) Je ne pense pas que je l'ai touché depuis 2002 ...

Quelque chose de mal à regarder simplement Request.ServerVariables ("utilisateur de connexion") dans la page ASP? Cela devrait vous donner le domaine \ nom d'utilisateur. Plutôt que d'essayer d'exécuter la classe COM-enveloppée sous l'identité de l'utilisateur final (qui est le problème que vous rencontrez), vous pouvez simplement passer le domaine \ nom d'utilisateur à une classe pour récupérer les détails du compte de AD, puis afficher les éléments nécessaires à partir de là. Cela ferait disparaître le besoin d'usurper l'identité pour obtenir l'identité de Windows de l'utilisateur actuel.

1

Vérifiez également les méthodes d'authentification utilisées par le site dans IIS.

Clic droit sur le site dans le Gestionnaire IIS, Propriétés -> Sécurité de répertoire -> Authentification et contrôle d'accès -> Modifier ...

Assurez-vous que l'authentification Windows intégrée est cochée, activez l'accès anonyme est autorisé.

Questions connexes