Возможно ли повысить безопасность в надстройке IE .NET? - PullRequest
2 голосов
/ 31 октября 2011

У меня есть надстройка C # /. NET (VS2010) для IE, которая использует Marshal.GetActiveObject() для работающего экземпляра приложения (COM-объект), а затем отправляет ему команды с помощью метода Invoke().В ХР работает нормально.В W7 / Vista требуется, чтобы IE и целевое приложение были «Запуск от имени администратора», иначе генерируется исключение:

[Operation unavailable (Exception from HRESULT:0x8000401E3 MK_E_UNAVAILABLE))]

Вот код:

private void _BtnPlace_onclick(IHTMLEventObje)
{
    ....
    ....
    object AutoCADApp = null;
    try
    {
        // Does not return the object from the Running Objects Table unless run 'As Administrator'

        AutoCADApp = System.Runtime.InteropServices.Marshal.GetActiveObject("AutoCAD.Application");
    }  
    catch (Exception ex)
    {
        MessageBox.Show("Unable to locate a running version of AutoCAD on this machine. Please make sure AutoCAD is running.\n\n [" + ex.Message + "]\n", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        return;
     } 

    object acadDoc = GetProperty(AutoCADApp, "ActiveDocument");
    InvokeMethod(acadDoc, "SendCommand", keyin);
}

Любойидеи о том, как решить проблемы безопасности, чтобы это дополнение работало в W7 / Vista (можно запросить у него повышенные привилегии)?

Ответы [ 2 ]

0 голосов
/ 19 июня 2012

Несколько моментов для размышления:

  1. Использовать раннее связывание вместо отражения, вызывая методы.
  2. Проверьте, нужен ли какой-либо другой код с правами «Запуск от имени администратора».
  3. Попробуйте вместо .NET SendStringToExecute().
  4. Проверьте, имеет ли команда, которую вы пытались вызвать, некоторую безопасность беспокойство.
0 голосов
/ 25 ноября 2011

Может быть, выстрел в темноте, но вы читали эту статью проекта кода: http://www.codeproject.com/KB/vista-security/ElevatedPrivilegesDemand.aspx

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