Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как разрешить внедренному в IE контролу выполнить приложение на клиенте? / 6 сообщений из 6, страница 1 из 1
27.10.2006, 08:45
    #34085728
as111
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разрешить внедренному в IE контролу выполнить приложение на клиенте?
Добрый день!

Есть внетренный в IE контрол. Необходимо, чтобы по нажатию на кнопку у клиента запускалось какое-либо приложение. Пусть это будет блокнот.
Как это можно сделать?
...
Рейтинг: 0 / 0
27.10.2006, 10:52
    #34086110
Scif
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разрешить внедренному в IE контролу выполнить приложение на клиенте?
Куда внедренный и какой кнопки?
...
Рейтинг: 0 / 0
27.10.2006, 11:17
    #34086204
as111
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разрешить внедренному в IE контролу выполнить приложение на клиенте?
Есть Windows Form Control, который размещен на web странице.
Что-то типа
<html>
<body>
<object id="testCONTROL" classid="HelloWordControl.dll#HelloWordControl.TestControl"
    style="width: 10px; height: 10px"></object>
</body>
</html>

Сам контрол костоит из текстового поля и кнопки. И должна происходить следующая процедура. Например.
1. В текстовое поле пишем название программы (notepad.exe)
2. Нажимаем кнопку. На клиенте должен запуститься Блокнот.


Люди советуют написать ActiveX. Но на хрена тогда вся эта супер-пупер технология .NET если я сейчас возьму древний VB и сяду писать ActiveX? Мне кажется должна же быть стандартная технология (альтернатива ActiveX)?

При попытке запустить приложение
Process.Start("notepad.exe") ругается что нет прав.
Permission Set создал, дал все права которые только возможно. Но по видимому еще что-то в коде надо написать...

Ругается так:
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.Security.SecurityException: Request failed.
   at System.Security.CodeAccessSecurityEngine.ThrowSecurityException(Assembly asm, PermissionSet granted, PermissionSet refused, RuntimeMethodHandle rmh, SecurityAction action, Object demand, IPermission permThatFailed)
   at System.Security.CodeAccessSecurityEngine.ThrowSecurityException(Object assemblyOrString, PermissionSet granted, PermissionSet refused, RuntimeMethodHandle rmh, SecurityAction action, Object demand, IPermission permThatFailed)
   at System.Security.CodeAccessSecurityEngine.CheckSetHelper(PermissionSet grants, PermissionSet refused, PermissionSet demands, RuntimeMethodHandle rmh, Object assemblyOrString, SecurityAction action, Boolean throwException)
   at System.Security.CodeAccessSecurityEngine.CheckSetHelper(CompressedStack cs, PermissionSet grants, PermissionSet refused, PermissionSet demands, RuntimeMethodHandle rmh, Assembly asm, SecurityAction action)
   at HelloWordControl.TestControl.CreateFolder()
   at HelloWordControl.TestControl.button1_Click(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
The action that failed was:
 
...
Рейтинг: 0 / 0
27.10.2006, 11:27
    #34086247
Scif
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разрешить внедренному в IE контролу выполнить приложение на клиенте?
:) Ну так чего бы не кличать если Вы пытаетесь выполнить команды на которые у контрола "нет разрешения" Есть т.н. политика безопасности .NET Ваш компонент загружаеться из удаленной сборки, поэтому и прав нет. Вам нужно сделать Increase Assembly Trust в Microsoft .NET Framework x.x Configuration в Администрировании
Для длл Вашего компонента
...
Рейтинг: 0 / 0
27.10.2006, 12:39
    #34086605
as111
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разрешить внедренному в IE контролу выполнить приложение на клиенте?
Не, почему-тo Increase Assembly Trust не помогает.
Вообще перестает работать, как только ключом подпишешь. Может я что-то не доделал...
В любом случае спасибо за подсказку.

Сделал Code Groups с указанием на мою DLL и дал ей права Full Trust. По идее то же самое.

И в коде обрамил мою строчку


new SecurityPermission(PermissionState.Unrestricted).Assert();
Process.Start("notepad.exe");
SecurityPermission.RevertAssert();

И заработало!
...
Рейтинг: 0 / 0
27.10.2006, 12:51
    #34086660
Scif
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разрешить внедренному в IE контролу выполнить приложение на клиенте?
>Вообще перестает работать, как только ключом подпишешь
На сколько я понимаю, мы сначала подписываем, а затем делаем Increase Assembly Trust, иначе после подписания строгое имя сборки меняеться и на нее не действует ранее созданное правило....
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как разрешить внедренному в IE контролу выполнить приложение на клиенте? / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]