2009-09-11 3 views
1

Actuellement, nous avons un fichier .hta que les employés utilisent pour mettre à jour certains éléments de leur profil de répertoire actif. Cela évite aux administrateurs système d'avoir à faire face à ce problème. Le raisonnement pour un fichier .hta est évident. Il soulève un grand nombre de blocages de sécurité et permet à une machine de faire des choses (comme mettre à jour un profil de répertoire actif) qu'elle ne pourrait pas faire autrement (à ma connaissance). Je réalise les implications de sécurité, mais on nous demande de transférer cette application .hta à une application .net basée sur un navigateur. Est-ce seulement possible? Si c'est le cas, pourquoi est-ce possible? Il semble que quelque chose qui est (et devrait être) relativement impossible à partir du navigateur.Un navigateur peut-il émuler les fonctionnalités liées à la sécurité d'un fichier .hta?

Répondre

0

Je suppose que cela dépend de ce que vous voulez dire par application .net basée sur un navigateur. J'ai écrit de nombreux utilitaires qui sont présentés à l'utilisateur comme des pages web et qui mettent à jour AD (ou un autre référentiel). Dans ces cas, au moins une partie de l'application s'exécute sur le serveur. La page Web dans le navigateur donne simplement accès à ce code serveur.

Il existe plusieurs technologies derrière cela. Je suppose que vos utilisateurs exécutent le .hta comme eux-mêmes. Vous pouvez faire quelque chose de similaire en utilisant ASP.NET. ASP.NET s'exécute sur IIS. Si vous utilisez IE comme navigateur, vous pouvez configurer IIS (et IE) pour utiliser l'authentification intégrée de Windows. Cela signifie que IE transmet le jeton de sécurité Windows à IIS afin qu'IIS sache qui est l'utilisateur et qu'il s'est récemment authentifié auprès d'un contrôleur de domaine. IIS transmet cela à ASP.NET afin que votre application puisse le savoir également. Vous pouvez configurer votre application pour qu'elle «usurpe l'identité» de l'utilisateur et fasse des choses en utilisant son identifiant. Ou, vous pouvez définir les informations d'identification à utiliser par votre application et exécuter le site ASP.NET à l'aide d'IIS ApplicationPool ou utiliser les informations d'identification directement dans votre code lorsque vous appelez à AD. Je l'ai fait quand je voulais que l'utilisateur puisse faire quelque chose qu'il ne peut pas faire avec ses propres identifiants et je n'ai pas voulu lui accorder un accès direct en lui déléguant cette autorité. Cela signifie que je peux ajouter une validation au processus.

Vous utilisez un espace de noms .NET appelé System.DirectoryServices, alias S.DS (ou System.DirectoryServices.Protocols (alias SDS.P) mais plus difficile à utiliser ou System.DirectoryServices.AccountManagement fourni avec. NET 3.5) et vous pouvez lire et mettre à jour AD en l'utilisant.

Si vous voulez en savoir plus, mettez à jour votre question et je vais essayer de vous aider.

Questions connexes