Может ли браузер эмулировать связанные с безопасностью функции файла .hta? - PullRequest
1 голос
/ 11 сентября 2009

В настоящее время у нас есть файл .hta, который сотрудники используют для обновления определенных элементов своего профиля активного каталога. Это избавляет системных администраторов от необходимости решать эту проблему. Причины для файла .hta очевидны. Он снимает много блокировок безопасности и позволяет машине делать такие вещи (например, обновлять профиль активного каталога), которые в противном случае он не смог бы сделать (насколько я знаю).

Я понимаю последствия для безопасности, но нас просят перенести это приложение .hta в приложение на основе браузера .net. Это вообще возможно? Если это так, то почему это возможно? Кажется, что-то, что (и должно быть) относительно невозможно из браузера.

1 Ответ

0 голосов
/ 21 сентября 2009

Полагаю, это зависит от того, что вы подразумеваете под браузерным приложением .net. Я написал много утилит, которые представлены пользователю в виде веб-страниц и которые обновляют AD (или какой-либо другой репозиторий). В этих случаях, по крайней мере, часть приложения работает на сервере. Веб-страница в браузере просто предоставляет доступ к этому коду сервера.

За этим стоит несколько технологий. Я предполагаю, что ваши пользователи запускают .hta как они сами. Вы можете сделать что-то подобное, используя ASP.NET. ASP.NET работает на IIS. Если вы используете IE в качестве браузера, вы можете настроить IIS (и IE) на использование встроенной аутентификации Windows. Это означает, что IE передает маркер безопасности Windows в IIS, чтобы IIS знал, кто пользователь, и что они недавно аутентифицировались в DC. IIS передает это в ASP.NET, чтобы ваше приложение также могло это знать. Вы можете настроить свое приложение так, чтобы оно «имитировало» пользователя и делало что-то, используя его ID.

Или вы можете определить учетные данные, которые будут использоваться вашим приложением, и либо запустить сайт ASP.NET с помощью IIS ApplicationPool, либо использовать учетные данные непосредственно в своем коде, когда вы вызываете AD. Я сделал это, когда хотел, чтобы пользователь мог делать то, что он не может делать со своими учетными данными, и я не хотел предоставлять им прямой доступ, делегируя ему эти полномочия. Это означает, что я могу добавить проверку в процесс.

Вы используете пространство имен .NET с именем System.DirectoryServices, также называемое S.DS (или System.DirectoryServices.Protocols (также называемое SDS.P), но это сложнее в использовании, или System.DirectoryServices.AccountManagement, которое поставляется с .NET 3.5) и вы можете читать и обновлять AD, используя его.

Если вы хотите узнать больше, обновите свой вопрос, и я постараюсь помочь.

...