Как вызвать элемент управления .Net или библиотеку классов из javascript на веб-странице в Internet Explorer? - PullRequest
2 голосов
/ 27 января 2012

Я работаю над приложением для интрасети, где оно должно собирать системную информацию из информации о переменных среды с клиентского компьютера, чтобы ее можно было использовать для дальнейшей обработки сервером.Браузер Internet Explorer, версии 8 и 9.

Я рассматривал Silverlight как возможность, но он кажется слишком ограниченным (по соображениям безопасности), чтобы иметь возможность получить информацию, которую мне нужно собрать.1003 *

Пока что поиск ответа еще ничего не дал.Есть мысли?

Ответы [ 3 ]

6 голосов
/ 27 января 2012

Действительно, вы можете написать класс .Net и создать его экземпляр из JavaScript в IE.

  1. Сделай свой класс ComVisible
  2. Дайте вашему классу ProgId
  3. Зарегистрируйте сборку .Net с помощью regasm
  4. В вашем коде JavaScript звоните new ActiveXObject

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

Насколько я помню, должно быть что-то вроде этого (не проверено):

В C #:

[ComVisible(true)]
[ProgId("MyCompany.MyClass")]
public class MyClass
{
    public string UserName
    {
        get { return Environment.UserName; }
    }
}

В консоли администратора:

regasm MyClass.dll

В JavaScript:

var myClass = new ActiveXObject("MyCompany.MyClass");
alert(myClass.UserName);
2 голосов
/ 27 января 2012

Я не думаю, что можно читать переменные среды из браузеров. Поскольку браузеры предназначены для Интернета, предоставление им возможности считывать настройки системы любого вида приведет к проблемам с безопасностью. Никто не хочет, чтобы веб-сайт, который он / она посещал в Интернете, читал его системную информацию, верно? Я очень скептически отношусь к возможности сделать то, что вы пытаетесь достичь. Однако вы можете написать пример приложения для Windows, которое загружается с веб-сайта интрасети, считывает параметры среды и отправляет его на сервер.

0 голосов
/ 27 января 2012

Это не должно быть возможным, поскольку никто не заинтересован (кроме плохих парней) в том, что вы можете писать программы для доступа к вашему локальному компьютеру.

Я не знаю, сколько у вас пользователей.Но если вам определенно нужна информация, одним из решений будет создание программы, которая извлекает все необходимые данные с компьютеров и сохраняет их в базе данных, сопоставленной с пользователем.Затем вы извлечете информацию из базы данных, когда она понадобится вам в браузере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...