2011-12-23 6 views
3

tldr; Как отметить dll JScript.NET как безопасную для сценариев?Как реализовать IObjectSafety программно в JScript.NET

Рассмотрим эту библиотеку JScript.NET (helloworld1.js):

package helloworld1{ 
    class test1 { 
    public function test1run(){ 
     return 'This is a string returned from helloworld1.dll'; 
    } 
    } 
} 

После запуска через

jsc.exe /nologo /t:library helloworld1.js

и

regasm /nologo /codebase helloworld1.dll

я могу использовать его на моем LOC HTML-аль с:

var helloworld1 = new ActiveXObject("helloworld1.test1"); 
alert(helloworld1.test1run()); 

Это все работает отлично, и я получаю предупреждение с This is a string returned from helloworld1.dll.

Теперь ... Я хочу, чтобы избавиться от страшного предупреждения безопасности IE, который выскакивает каждый раз, когда объект ActiveX инстанциируется:

An ActiveX control on this page might be unsafe to interact with other parts of the page. Do you want to allow this interaction?

Я знаю, как убрать предупреждение о безопасности следует отметить dll как safe for scripting и реализовать IObjectSafety.

Я знаю, как это сделать в VB6 и VB.NET, но как я могу реализовать его в JScript.NET?

Любая помощь действительно оценена.

+0

Возможный дубликат http://stackoverflow.com/questions/4549465/how-to-sign-an-activex-dll-with-a-certificate –

+0

@Erik Philips: Я так не думаю. Насколько я вижу, этот вопрос связан с ** подписанием ** dll с реальным сертификатом, мой вопрос включает в себя реализацию «IObjectSafety» в JScript.NET. – Tony

+0

Вы указали «Я хочу избавиться от опасного предупреждения безопасности IE, которое появляется каждый раз при создании объекта ActiveX», что требует подписи вашей DLL, что также требует реализации «IObjectSafety». –

ответ

1

После обширного исследования, которое я выяснил, поскольку в JScript.NET нет документации для IObjectSafety, я не могу реализовать этот интерфейс непосредственно в коде.

я, наконец, поселился с добавлением необходимых ключей реестра для маркировки моей библиотеки DLL в качестве «Безопасно для инициализации» и «безопасные»:

[HKEY_CLASSES_ROOT\CLSID\[MY_COM_CLASS_GUID]\Implemented Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}] 
[HKEY_CLASSES_ROOT\CLSID\[MY_COM_CLASS_GUID]\Implemented Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}] 

добавить эти ключи во время моей обычной установки, когда HelloWorld1. dll развертывается на целевых машинах. Он работает безупречно.

+0

Но ... но ... на самом деле это не безопасно для сценариев? Вздох. – x0n

+0

@ x0n: Нет, это НЕ безопасно. По сути, это довольно опасно. Не пытайтесь. – Tony

 Смежные вопросы

  • Нет связанных вопросов^_^