Конференция "Основная" » Переделка приложения на работу с включенным UAC
 
  • harisma © (11.03.13 18:15) [0]
    Хотим переделать старое приложение, которое ранее для своей работы требовало отключения UAC (если быть более точным - не было рассчитано на работу под ограниченными учетными записями), а по сему все свои настройки хранило в ветке реестра HKLM\Software\<FirmName>\<AppName>. Все пользователи могли из программы менять эти настройки и всем было хорошо.
    Когда в майкрософте решили повысить защищенность ОС, некоторые пользователи стали иметь доступ к этой ветке реестра только на чтение и уже поменять ничего по сути не могут. При включенном UAC эта ветка как я знаю, виртуализируется, поэтому ограниченные учетки могут сохранять измененные ими данные настроек программы в своей виртуализированной ветке. Но это не будет теперь доступно для других пользователей. Более того, насколько мне известно, в 64-разрядной ОС эти ветки при включенном UAC не виртуализируются, а значит будем иметь проблемы.
    Соответственно возникает вопрос: можно ли убрать настройки программы из этой ветки реестра, чтобы все пользователи как и раньше имели возможность менять их, и если это возможно, то куда лучше всего их переместить. Или может организовать какое другое хранилище этих настроек? Например инишный файл (хотя как по мне - это атавизм и давно устаревшая практика)?
    Это приложение многопользовательское и на одной машине может быть запущено его несколько экземпляров.
    У кого какие будут соображения на этот счет?
  • Rouse_ © (11.03.13 18:57) [1]
    Погоди, я же тебе все подробно по аське все моменты еще две недели объяснил как именно организовать в твоем случае хранение настроек, не срослось что-то?
  • harisma © (11.03.13 19:30) [2]
    Типа того. :( Не устраивает начальство то, что у ограниченных пользователей будут свои копии настроек. Хотят чтобы было как раньше, но чтобы работало со включенным UAC. И чтобы настройки были централизованные и чтобы все могли из программы их менять без необходимости давать юзерам расширенные права на запись.
    То, что ты мне тогда по аське написал, я попробовал и остался доволен, т. к практически ничего менять в моем коде в программе не пришлось за исключением флагов открытия ключей реестра в зависимости от уровня прав пользователя. А вот начальство такой вариант не устроил. :(
  • Rouse_ © (11.03.13 19:41) [3]

    > И чтобы настройки были централизованные и чтобы все могли
    > из программы их менять без необходимости давать юзерам расширенные
    > права на запись.

    В таком случае не получится, либо будет через пень колоду.
    Есть конечно вариант - писать централизированный сервис настроек, но это вариант через то еще место с твоими требованиями.
  • Rouse_ © (11.03.13 19:42) [4]

    > А вот начальство такой вариант не устроил. :(

    Кстати, а начальство то технически подкованное? :)))
    Тыж можешь сказать что сделал как они хотят, не вдаваясь в детали ;)
  • sniknik © (11.03.13 22:54) [5]
    чем то похожее было... суть/причина другая но похоже
    у меня был
    > Например инишный файл (хотя как по мне - это атавизм и давно устаревшая практика)?
    нифига не атавизм, удобно, все  (/мелкософт/...) так делают, но "стесняются"...
    собственно вот http://pda.delphimaster.net/?n=5&id=1357723591&p=1

    0 пост, так и решено как предполагалось, дальше можно не читать. работает и с уак и без, на разных системах.
    единственное различие (смотря от кого зашли/оси) иногда дает выбор пользователя/админа для выполнения, а иногда просто повышает права "молча" (если работают под админом и винда сделала понижение прав программе).
    хотя, если у тебя частая запись (юзерские настройки, а не программы) то я бы так делать не стал (пользователя "заколебешь" постоянным "войдите под админом для записи в настройки").
  • sniknik © (11.03.13 23:04) [6]
    кстати у тебя, если пользователи/настройки всегда на одной машине, можно и в AppData ini-ник держать.
  • Rouse_ © (11.03.13 23:06) [7]

    > можно и в AppData ini-ник держать.

    Этот вариант обсуждался с автором, но по ТЗ вносить туда изменения могут только доверенные пользователи, что в случае INI файла нереально обеспечить (FAT32 тот-же, где нельзя навесить нужные права на файл)
  • sniknik © (11.03.13 23:15) [8]
    > вносить туда изменения могут только доверенные пользователи
    тогда любое место хранения подойдет по схеме с RunAs, где у этих доверенных пользователей будут права на запись, а остальным будет предложено ввести логин/пароль.
    хоть место в расшарке в сети (права обеспечит сервер).

    > FAT32 тот-же, где нельзя навесить нужные права на файл
    эээ... а нужен именно такой, настолько, универсальный метод? почему тогда fat16 исключен?
  • Германн © (12.03.13 01:36) [9]

    > FAT32 тот-же, где нельзя навесить нужные права на файл

    Имхо, столь общего решения данная задача не имеет.
  • harisma © (12.03.13 13:07) [10]
    Не. Тут уж вы загнули. FAT32 (и тем более FAT16) не рассматривается. :)
  • Rouse_ © (12.03.13 14:00) [11]

    > harisma ©   (12.03.13 13:07) [10]
    > Не. Тут уж вы загнули. FAT32 (и тем более FAT16) не рассматривается.
    >  :)

    Ну почему не рассматривается? У нас на данный момент за полмиллиона установок (считая повторные) ко мне на саппорт постоянно стекается информация о параметрах систем пользователей (при возникновении ошибок) накопилась достаточно солидная статистическая база и могу сказать что FAT32 присутствует примерно в 30 процентах случаев.
    Таким образом, если ты будешь отказываться работать на FAT32 - потеряешь треть клиентов, а если все-же будет его поддержка, то его сможет редактировать все кто не лень.
  • Inovet © (12.03.13 14:25) [12]
    > [11] Rouse_ ©   (12.03.13 14:00)
    > FAT32 присутствует примерно в 30 процентах случаев.

    Интересно, как наличие FAT32/NTFS коррелирует с остальными параметрами системы?
  • Rouse_ © (12.03.13 14:29) [13]
    В смысле? У меня EP2 файлы эвриковские валятся где вгоняются в базенку, где разбивается по параметрам, ОС/память/файловая система и т.п. и отображается в процентном соотношении. В основном народ сидит на ХР, где больше половины на файловой системе FAT32.
  • sniknik © (12.03.13 14:50) [14]
    > если ты будешь отказываться работать на FAT32
    а кто отказывается работать? отказ только в разделении файловых прав на нем... причем объяснение "винда тут сама не разделяет" клиентами легко понимается.

    ИМХО, не стоит усложнять себе жизнь выдуманными проблемами, реальных хватает.

    и +
    автор ничего не теряет, т.к.  -
    > Все пользователи могли из программы менять эти настройки и всем было хорошо.
    на фате будет аналогично, все могут, и всем хорошо...
  • Rouse_ © (12.03.13 14:51) [15]

    > Все пользователи могли из программы менять эти настройки
    > и всем было хорошо.

    Не все - а только те у кого были соответствующие права, собственно от сюда я и пляшу :)
    Кабы не это условие, все давно бы уже разрешилось :)
  • Inovet © (12.03.13 14:56) [16]
    > [13] Rouse_ ©   (12.03.13 14:29)
    > В основном народ сидит на ХР, где больше половины на файловой системе FAT32

    Так и подумал. XP позволяла себя ставить на ФАТ, а народ боялся НТФС.
  • Rouse_ © (12.03.13 15:03) [17]
    Систему давно не переставлял - а семерка разве не позволяет? (ну, не в курсе просто...)
  • Inovet © (12.03.13 15:52) [18]
    > [17] Rouse_ ©   (12.03.13 15:03)
    > а семерка разве не позволяет?

    По крайней мере не предлагает в инсталяторе, а это для 99,9% всё равно что не позволяет. ХП ещё ставили (или даже обновление было) на диски с Вин98. Вин7 на такие компьютеры вряд ли кто будет ставить, а на новые НТФС. В общем, думаю, ноги наличия ФАТ оттуда растут, а не от реальной необходимости в ней.
  • Rouse_ © (12.03.13 15:57) [19]

    >  В общем, думаю, ноги наличия ФАТ оттуда растут, а не от
    > реальной необходимости в ней.

    Даже спорить не буду - вероятно так оно и есть.
 
Конференция "Основная" » Переделка приложения на работу с включенным UAC
Есть новые Нет новых   [119320   +86][b:0][p:0.001]