Правильный способ работы с UAC в C #

У меня есть приложение (служба Windows), которое установлено в каталог в папке Program Files. Наряду с этим приложением есть еще одно приложение WinForms, которое используется для настройки службы (среди прочего). Когда он выполняет настройку, он сохраняет изменения в файле конфигурации, который находится рядом со службой.

При работе в Vista / Win7 UAC не позволяет пользователю сохранять файл конфигурации. Я бы хотел сделать следующее:

  • поместите значок щита рядом с пунктом меню, используемым для настройки
  • запроса разрешений UAC, когда этот элемент выбран
  • , отображать значок / приглашение только в ОС, которая требует он
  • показывает значок / приглашение только тогда, когда требуются разрешения (например, если приложение установлено где-то, где не требуется разрешение UAC)

Я действительно не хочу запускать все приложение от имени администратора, так как это также используется для других целей, для которых не требуются разрешения UAC (поэтому установка файла манифеста приложения не является правильным решением). Я также предполагаю (поправьте меня, если я ошибаюсь), что после предоставления разрешений UAC, «Ошибка при вызове CFC / .... (путь к файлу) ../ wgn.cfc: Внутренняя ошибка сервера [Включите отладку, добавив 'cfdebug ...

Я пробовал несколько руководств по этой теме на Forta.com, но все же столкнуться с той же ошибкой: «Ошибка при вызове CFC / .... (путь к файлу) ../ wgn.cfc: Внутренняя ошибка сервера [Включить отладка путем добавления 'cfdebug к параметрам URL-адреса, чтобы увидеть дополнительную информацию] "

Я работаю на своей локальной машине и тестирую ее как localhost. Запуск WinXP Pro с sp3. Использование веб-сервера Coldfusion.

И мои .cfm, и. cfc находятся в той же папке под корневым веб-каталогом. В моем случае: c: \ ColdFusion9 \ wwwroot \ bridges (здесь .cfm и .cfc) Итак, они находятся в папке «мостов» под wwwroot.

Код должен генерировать некоторые функции автозаполнения, когда пользователь вводит текст в поле ввода. Вместо этого он просто выплевывает указанную выше ошибку.

Это мой cfc с именем wgn.cfc:

<cfcomponent output="false">
    <cfset THIS.dsn="bridges">
      <!--- Lookup used for auto suggest --->
      <cffunction name="getWGN" access="remote" returntype="array">
        <cfargument name="search" type="any" required="false" default="">
        <!--- Define variables --->
        <cfset var data="">
        <cfset var result=ArrayNew(1)>
        <!--- Do search --->
        <cfquery datasource="#THIS.dsn#" name="data">
        SELECT tblIDs.ID
        FROM tblIDs
        WHERE (tblIDs.IDType = 'xxx') AND (tblIDs.ID Like ('#ARGUMENTS.search#%'));
        </cfquery>
        <!--- Build result array --->
        <cfloop query="data">
        <cfset ArrayAppend(result, searchIDs)>
        </cfloop>
         <!--- And return it --->
        <cfreturn result>
       </cffunction>  
</cfcomponent>

И это соответствующая часть формы с моей страницы .cfm:

    <cfform .....>
    <cfinput name="searchIDs" type="text" autosuggest="cfc:wgn.getWGN({cfautosuggestvalue})">
    //......more to form, obviously
    </cfform>
1
задан stuttsdc 13 October 2010 в 15:59
поделиться