Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Разграничение прав доступа к внешним устройствам

90K
24 апреля 2013 года
Crazy Fish 333
1 / / 24.04.2013
Здравствуйте!

Стоит задача сделать программу разграничения доступа к внешним устройствам (USB-накопителям, CD/DVD-дискам и т. д.).

Имеется список пользователей: User1, User2.... User1, например, должен обладать правами только на чтение ВСЕХ внешних носителей, User2 - только на запись и т. д. То есть, нет разграничения на конкретные носители. Права доступа распространяются для конкретного пользователя на все носители.

Второстепенная задача - запрет/разрешение вывода на печать.

Предположительно программа будет разрабатываться как служба Windows на Microsoft Visual Studio 2010 на C# (но это не обязательно, если другими средствами данная задача будет выполняться значительно проще).

У кого есть какие идеи по реализации данных функций?

В MSDN также спрашивал. Нужны ещё мнения. Там советуют использовать групповые политики.
social.msdn.microsoft.com

Накопал материал, теперь создаю в HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows раздел RemovableStorageDevices, а в нём создаю раздел {53f5630d-b6bf-11d0-94f2-00a0c91efb8b} (он характеризует класс устройств Removable Disks, есть ещё другие, но пока на флешках экспериментирую), а там создаю 2 параметра типа DWORD: Deny_Read (1 - чтение запрещено, 0 - чтение разрешено) и Deny_Write (1 - запись запрещена, 0 - запись разрешена).
Столкнулся с некоторыми трудностями:
1) изменение значений действует для всех пользователей (это ещё не так страшно, так как при входе в систему можно определить, какой пользователь выполнил вход и внести соответствующие изменения в реестр согласно политике разграничения доступа, и не так важно, что эти изменения коснутся всех пользователей, так как предполагается, что 2 и более пользователей одновременно в системе не будут работать);
2) чтобы изменения адекватно вступили в силу, потребуется перезагрузка или выход из системы и вход под тем же пользователем (то есть User1 входит в систему, программа вносит изменения в реестр и принудительно выходит из системы, User1 опять должен войти в систему, а это несколько "коряво");
3) испробовал все 4 варианта возможных значений Deny_Read и Deny_Write, все отработали на ура кроме одного: когда Deny_Read = 1, а Deny_Write = 0, то запись всё равно запрещена, то есть при запрещённом чтении, но разрешённой записи, запись всё равно нельзя производить.

Какие способы реализации данной задачи, а также способы преодоления описанных трудностей вы можете предложить?
327
24 апреля 2013 года
UserNet2008
748 / / 03.04.2010
Цитата:
В MSDN также спрашивал. Нужны ещё мнения.


Ну если спецы самого лучшего софта не могли Вам дать вразумительного ответа, то куда нам.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог