Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
 Аватар для Cupko
658 / 595 / 171
Регистрация: 17.07.2012
Сообщений: 1,682
Записей в блоге: 1

Разграничение доступа: запрет выполнения процедуры

04.04.2013, 12:02. Показов 3150. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вообщем, задача в следующем: нужно некоторым юзерам, запретить выполнение некоторых процедур в формах. В какую сторону надо смотреть?

(Я даже не знаю, как более подробней объяснить.)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.04.2013, 12:02
Ответы с готовыми решениями:

Запрет доступа к файлу
Ребят, подскажите пожалуйста, как программно запретить доступ к файлу? Очень надо. За ответы заранее благодарен.

Запрет/блокировка доступа к директории, файлу
Всем привет!!!!!! необходимо реализовать блокировку доступа к каталогу/файлу получилось так: (API функция CreateFileA) ...

Время выполнения процедуры
Здравствуйте, У меня есть процедура в mssql. Она выполняет кучу действий с огромным количеством строк (несколько миллионов) По времени...

11
 Аватар для Монфрид
1245 / 1055 / 293
Регистрация: 07.03.2012
Сообщений: 3,247
04.04.2013, 12:07
в первую очередь надо определить где это будет регламентировано, описано то есть, что такой то юзер не должен выполнять это действие. В бд это будет или xml в общем то без разницы, в любом случае вам нужно узнавать из этого источника может ли такой юзер делать это или нет
0
 Аватар для Cupko
658 / 595 / 171
Регистрация: 17.07.2012
Сообщений: 1,682
Записей в блоге: 1
04.04.2013, 12:14  [ТС]
Цитата Сообщение от Монфрид Посмотреть сообщение
в первую очередь надо определить где это будет регламентировано, описано то есть, что такой то юзер не должен выполнять это действие. В бд это будет или xml в общем то без разницы, в любом случае вам нужно узнавать из этого источника может ли такой юзер делать это или нет
Это всё понятно и известно. Юзеры и правила берутся из БД и хранятся в классе.
Меня интересует, как конкретно запретить выполнение части юзерам, а другой части - разрешить
0
713 / 680 / 126
Регистрация: 30.03.2012
Сообщений: 1,124
04.04.2013, 12:17
при перелогине смотреть права доступа юзера и блокировать ему определенные кнопки
или в самом методе проверять залогиненного юзера и если не подходит - ошибка и return
0
 Аватар для Cupko
658 / 595 / 171
Регистрация: 17.07.2012
Сообщений: 1,682
Записей в блоге: 1
04.04.2013, 12:21  [ТС]
Цитата Сообщение от Tessen Посмотреть сообщение
при перелогине смотреть права доступа юзера и блокировать ему определенные кнопки
или в самом методе проверять залогиненного юзера и если не подходит - ошибка и return
С кнопками всё понятно (кстати, это тоже часть задания). Но, помимо кнопок на форме, существуют ещё хоткеи и последовательно выполняющиеся методы, из которых, в зависимости от доступа, надо некоторые исключить.
0
Танцы с бубном
 Аватар для Lokko
68 / 69 / 26
Регистрация: 27.03.2013
Сообщений: 279
04.04.2013, 13:23
Идея может и странная, но возможно и поможет. К каждому методу добавить переменную и по ней определить группу, как то так:
C#
1
2
3
4
5
6
7
8
9
10
11
 void Method(int UserGroups)
        {
            switch (UserGroups)
            { 
                case 0: ... 
                    break;
                case 1:
                    return;
                    break;
            }
        }
либо написать метод который будет проверять, можно ли данному пользователю использовать метод или нет.
1
 Аватар для Cupko
658 / 595 / 171
Регистрация: 17.07.2012
Сообщений: 1,682
Записей в блоге: 1
04.04.2013, 13:27  [ТС]
Цитата Сообщение от Lokko Посмотреть сообщение
Идея может и странная, но возможно и поможет. К каждому методу добавить переменную и по ней определить группу, как то так:
либо написать метод который будет проверять, можно ли данному пользователю использовать метод или нет.
Вот и мне тоже, кроме как обернуть метод другим методом, и там уже условиями смотреть, ничего другого в голову не пришло. Но, что-то, совсем он мне не нравится.
0
Танцы с бубном
 Аватар для Lokko
68 / 69 / 26
Регистрация: 27.03.2013
Сообщений: 279
04.04.2013, 14:04
Попробую поломать голову, задачка очень даже интересная Для удобства нарисовал схему))

0
 Аватар для Cupko
658 / 595 / 171
Регистрация: 17.07.2012
Сообщений: 1,682
Записей в блоге: 1
04.04.2013, 14:07  [ТС]
Цитата Сообщение от Lokko Посмотреть сообщение
Попробую поломать голову, задачка очень даже интересная Для удобства нарисовал схему))
Самое интересное, что метод можно запретить как для группы пользователей, так и для конкретного пользователя. Поэтому вышеуказанный способ мне и не нравится.
0
Танцы с бубном
 Аватар для Lokko
68 / 69 / 26
Регистрация: 27.03.2013
Сообщений: 279
04.04.2013, 14:52
Хм... все что пришло в голову это классификатор. Сделать таблицу где будут указаны какому пользователю доступен какой метод, как то так:
C#
1
2
3
4
5
6
7
string[,] Klassifikator = new string[5, 2] {
                                             {"Иванов","Метод1",},
                                             {"Иванов", "Метод2"},
                                             {"Сидоров", "Метод3"},
                                             {"Сидоров", "Метод4"},
                                             {"Иванов", "Метод5"}
                                            }; /* Пишем массив методов, получается классификатор */
Далее пишем центральный метод, где при входе заполняем данный массив, метод должен проверить и распределить все по полочкам, получается подобие проводника, в принципе можно и класс написать.

Извини друг, но это все что пришло в мою голову)
1
 Аватар для Cupko
658 / 595 / 171
Регистрация: 17.07.2012
Сообщений: 1,682
Записей в блоге: 1
04.04.2013, 15:01  [ТС]
Lokko, алгоритм логичен и понятен, но меня интересовала именно реализация алгоритма.

Мне тут предложили вариант, используя делегаты и рефлексию, пока на нём и остановлюсь.

Что-то вроде:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        private delegate void permVoid();
 
        private void TestMethod()
        {
            MessageBox.Show("Weeeeeeeeeeeeeee!");
        }
 
        private void CheckPermission(permVoid someTestMethod, UserPermissions perms)
        {
            if (perms.Count(x=> x.FunctionName == "TestVoid") == 0)
            {
                someTestMethod();
            }
            else return;
        }
Соответственно, хранить методы, недоступные юзеру, в Permissions
0
 Аватар для sau
2773 / 2073 / 386
Регистрация: 22.07.2011
Сообщений: 7,820
04.04.2013, 15:30
Смотрите в сторону CAS:
http://msdn.microsoft.com/ru-r... .110).aspx
http://msdn.microsoft.com/ru-ru/library/aa302424

Если хочется велосипед, то можно упростить задачу с помощью аспектов (АОП), например в исполнении PostSharp.
http://www.postsharp.net/aspects/method-decorator
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.04.2013, 15:30
Помогаю со студенческими работами здесь

Разграничение доступа к файлам
Есть сайт на ASP (IIS 4.0). Необходимо разграничить доступ к большому числу файлов (архивов, html, картинок, ...). Узнать какие...

Разграничение прав доступа для каждого пользователя
Здравствуйте, пишу на c#, знаний мало, поэтому возник вопрос по поводу пользователей, нужно сделать так, чтобы для админа функции программы...

Разграничение прав доступа к папкам на основе дискреционной модели безопасности
Здравствуйте форумчане, столкнулся с небольшой проблемой. Изучаю C# и дали задание сделать разграничение прав доступа к определенным папкам...

Права доступа - запрет на удаление
Всем привет. Разбираюсь с правами доступа к файлу. Возникла проблема: не могу запретить право на удаление файла. Хотя после работы кода,...

Запрет доступа .txt и чтение его
У меня вот такой вопрос, как запретить открывать txt файл(на подобии дефолтного виндовского шифрования, когда присваивается сертификат и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru