|
40 / 44 / 1
Регистрация: 19.01.2021
Сообщений: 534
|
|
Как сделать роль в коде программы?29.09.2021, 16:44. Показов 4899. Ответов 36
Метки нет (Все метки)
Как сделать роль в коде программы, чтобы при регистрации пользователю выдавалась роль, помогите пожалуйста.
0
|
|
| 29.09.2021, 16:44 | |
|
Ответы с готовыми решениями:
36
Как сделать дешифровку шифра Атбаш? Что нужно изменить в коде программы? Как сделать что бы можно было вводить текст, а не задавать в коде программы? Как сделать в коде программы, чтобы можно было вводить числа самому, а не случайно. (Код прилагается) |
|
296 / 120 / 33
Регистрация: 06.03.2016
Сообщений: 453
|
||||||
| 29.09.2021, 23:11 | ||||||
|
Ответьте честно, Вы понимаете что тут написано?
0
|
||||||
|
40 / 44 / 1
Регистрация: 19.01.2021
Сообщений: 534
|
|
| 29.09.2021, 23:16 [ТС] | |
|
ipsorokin, Я как понимаю в БД мне ещё нужно добавить столбик role?
Добавлено через 4 минуты ipsorokin, В таблице есть четыре параметра, дальше в форме у меня есть четыре строки, когда я их заполняю и регистрируюсь, то данные заполненные в строках переходят по данным параметрам в БД
0
|
|
|
296 / 120 / 33
Регистрация: 06.03.2016
Сообщений: 453
|
||
| 29.09.2021, 23:27 | ||
|
Следовательно, чтобы добавить еще что-то надо ...? Чтобы был в таблице нужный столбец и передавать еще один параметр. Который, в данном случае, пусть содержит название роли или в виде цифры, не важно. Если регистрируете Вы, то сразу все это при регистрации и передаем. Если не Вы, тогда ставим по умолчанию роль обычного пользователя. Как понять какая роль у пользователя? После входа мы смотрим на роль пользователя, который вошел (берем ее из той же строки, что возвращает запрос SELECT c помощью ExecuteReader), а дальше уже сравниваем через if или case, и, например, блокируем кнопку редактирования, если пользователь не админ.
0
|
||
|
40 / 44 / 1
Регистрация: 19.01.2021
Сообщений: 534
|
||||||
| 29.09.2021, 23:38 [ТС] | ||||||
|
ipsorokin, Я всё внимательно прочитал, но как мне реализовать это всё?
Добавлено через 4 минуты ipsorokin, Возможно ли это сделать сегодня? Добавлено через 57 секунд ipsorokin, Я вот сделал вот так вот и бд добавил role столбец
0
|
||||||
|
296 / 120 / 33
Регистрация: 06.03.2016
Сообщений: 453
|
||||||
| 29.09.2021, 23:39 | ||||||
|
Понятно... Хотите чтоб за Вас всё сделали.
Вот вам ПРИМЕР, дальше по аналогии
0
|
||||||
|
40 / 44 / 1
Регистрация: 19.01.2021
Сообщений: 534
|
||||||
| 30.09.2021, 00:00 [ТС] | ||||||
|
ipsorokin, А я и не могу сам сделать, потому что не знаю c#, поэтому и прошу помощи
Добавлено через 1 минуту ipsorokin, И куда это вписывать нужно? Добавлено через 9 секунд ipsorokin, В форму входа? Добавлено через 17 минут ipsorokin, Я не понимаю, только если вот так вот сделал, но ошибка в коннекте
0
|
||||||
|
40 / 44 / 1
Регистрация: 19.01.2021
Сообщений: 534
|
|
| 30.09.2021, 19:02 [ТС] | |
|
ipsorokin, Здраствуйте, есть такой вопрос, есть ли у Вас документ в котором написаны команды для передачи прав пользователю или админу и как примерно это реализуется. Мне нужно сделать просто форму в которой я буду выбирать пользователя и давать ему права.
0
|
|
|
296 / 120 / 33
Регистрация: 06.03.2016
Сообщений: 453
|
|||||||
| 30.09.2021, 19:21 | |||||||
0
|
|||||||
|
40 / 44 / 1
Регистрация: 19.01.2021
Сообщений: 534
|
|
| 30.09.2021, 19:30 [ТС] | |
|
ipsorokin, Расскажите как это работает?
0
|
|
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
|
| 30.09.2021, 23:57 | |
|
goodrogrammer, Похоже, Вы не совсем понимаете роль ролей
![]() Роли предназначены для разграничения прав одних пользователей (групп пользователей) от других. Например, в БД фирмы есть три роли: "гость", "сотрудник" и "администратор". Для "Г" предусмотрен только режим просмотра состава сотрудников без личных данных и окладов: только ФИО, отдел и должность. Для "С" можно дополнительно увидеть адреса и телефоны. Также разрешена правка (изменение, добавление, удаление) Для "А" видно все и править можно также все. Дополнительно админ может менять роли у всех пользователей приложения. Все пользователи могут менять собственные данные, например, ФИО, пароль. Как роли реализуются. Есть два основных способа: серверный и прикладной. Серверный. Когда пользователи и роли регистрируются в БД на самом SQL-сервере (user, role). При этом каждому пользователю или группе пользователей назначается одна или более ролей. Роли указывают серверу, какие данные и из каких таблиц можно извлекать или менять. Чаще всего ролям "отдают" представления (Views), заранее настроенные нужным способом (например, для роли "Г" вьюшка не предоставляет личных данных (адрес, телефон, оклад и т.д.) Само ведение такой базы осуществляется обыкновенно сисадмином или админом БД через специальные приложения либо (чаще всего) средствами SQL. При этом никакой специальной таблицы пользователей непосредственно в БД не требуется. При открытии БД с клиентского ПК в строке подключения указывается логин и пароль пользователя. Откуда они берутся ? Либо само приложение предусматривает их указание при запуске программы, либо они считываются их файла установок приложения. При соединении выполняется проверка введенных (либо "поднятых" из ini-файла) логина и пароля (идентификация) самим SQL-сервером и соединение либо открывается либо выдается ошибка (sql-exception), на которое программа реагирует соответствующим месседжем. В случае успешного открытия соединения приложение вызывает те вьюхи или хранимки, которые доступны роли (ролям), назначенным этому пользователю сисадмином. Добавлено через 12 минут Серверный подход имеет ряд весьма серьезных преимуществ. 1. Освобождает разработчика клиентского ПО от каких-либо процедур определения прав на БД. Он просто пишет концептуальное приложение, например, для бухгалтера. Что показывать ему и какие давать возможности для внесения изменений - это определяет сам SQL-сервер, точнее, его бизнес-логика. 2. Централизует и унифицирует распределение функционала для всего клиентского ПО, работающего с этой БД. Даже если в системе крутится 100 разных клиентских программ, все изменения в правах делаются один раз и действую на все 100 приложений. Этот метод широко применяется в больших системах типа ERP/MRP крупных организаций, где разделение прав пользователей ПК имеет особое значение. Добавлено через 25 минут Клиентский. SQL-сервер ничего не знает ни о каких пользователях и ролях. Для него любое соединение - это возможность делать с содержимым БД (в том числе с метаданными) все, что угодно. Лишь бы не нарушало целостности самой БД. В базе должна быть одна (чаще всего) либо несколько таблиц, содержащих сведения о пользователях, из которых только три являются обязательными: id, login и password (имена полей в таблице могут быть другими, но суть - неизменной). Для распознавания разных типов пользователей (ролей, если хотите) добавляется еще одно или более полей, назовем их "ролевые параметры" (РП). "Раздача слонов" обычно также выполняется на "чистом" SQL админом либо специальной программой, с помощью которой тот же админ "вешает" РП каждому пользователю, разрешая либо запрещая ему определенные действия с БД. При разработке клиентского ПО программист пишет некий функционал, зависимый от того, кто именно работает с программой. Этот функционал напрямую зависит от алгоритмики авторизации и может быть доступным либо недоступным. Для приведенного выше примера с "Г", "С" и "А" он (функционал) должен быть в строгом соответствии. Т.е. если вошел "Г" то грид с сотрудниками будет иметь 3 колонки (ФИО, отдел, должность) и при этом никакой правки - только сортировка, поиск, фильтрация. Для "С" в гриде появятся дополнительные колонки: адрес, телефон, оклад. А также в меню появятся пункты "Добавить", "Изменить", "Удалить". Для "А" кроме "большого" грида появится дополнительная кнопка "Пользователи", нажав которую, он откроет окошко с таблицей пользователей (не путать с сотрудниками !), которую может править в полном объеме (кроме пароля, который он не имеет права даже знать, не то, что изменять). Вся эта логика должна быть реализована в приложении. Если через время возникнет необходимость написание другого приложения для этой базы, то всю эту "карусель" с "фичами" придется повторить. В этом состоит недостаток метода. Но есть и еще один, куда более серьезный недостаток - это "независимость" клиентской авторизации от серверной. Что это значит ? Менеджеру Пупкину захотелось поправить себе оклад. Из приложения он этого сделать не сможет, но у Васи есть друг-студент Ваня, который знаком с SQL. Ваня за "пирожок" от друга заходит на SQL-сервер конторы из какого-нибудь пыхадмина (MySQL), "жабки" (Oracle) или SSMS (MS SQL) и спокойно пишет update, дописывающий нолик к Васиному окладу ![]() В "серверном" варианте такое просто сделать нельзя
1
|
|
|
40 / 44 / 1
Регистрация: 19.01.2021
Сообщений: 534
|
|
| 01.10.2021, 17:42 [ТС] | |
|
MsGuns, Спасибо за столько написанной Вами информации, я всё это знаю, как что и где, но написать то что мне нужно я не могу, то есть не умею, знаний не хватает, да и у меня только сейчас началось изучение C#, и в чем интерес дают задания, и говорят делай сам, а намекают на то что списывал с интернета или проси помощи, вот я и прошу у Вас помощи, да возможно я не могу правильно выразить свои мысли на форуме, поэтому меня и не понимаю многие взрослые люди. У меня только БД есть с пользователями и БД admin( создал её для того чтобы там хранились имена пользователя и роли), мне нужно сделать роли, допустим кому-то я даю роль админа, кому-то разработчики, пользователя или админа сети. Мне нужна помощь с кодом, я могу дать код программы и кто-нибудь может мне поможет решить данную проблему.
Эта проблема заключается в том что, у меня есть регистрация и смена старого пароля на новый, после этого эти все данные хранятся и изменяются в БД, и есть кнопка вход, работает она после того как я введу логин:пароль и переду на пустую форму, но мне ещё нужна кнопка "для администрации" в которой я выбираю пользователя по surname(фамилии) и выдаю ему роли как я писал выше, НО кнопка "для администрации" должна работать всем кроме user. И после того как я выдам роль, в БД в таблице admin, должно показать что у такой то фамилии такая то роль, и главное что ещё это то что при вводе логина:пароля в программе и нажатия кнопки Вход, я перехожу на другую форму в которой есть просто кнопка добавить, но она должна быть доступна всем кроме user. Вот с этим я и прошу у Вас помощи, я говорю уже второй раз я не умею нечего делать, только кроме того как найти в YouTube видео-курс где человек показывает и пишет код программы с формами (допустим вход и регистрация с помощью БД).
0
|
|
|
296 / 120 / 33
Регистрация: 06.03.2016
Сообщений: 453
|
|
| 01.10.2021, 17:51 | |
|
Тут в какой-то теме предлагали обращаться в министерство образования, если Вам задают то, что Вы даже не изучали)))
0
|
|
|
40 / 44 / 1
Регистрация: 19.01.2021
Сообщений: 534
|
|
| 01.10.2021, 19:48 [ТС] | |
|
ipsorokin, Я просто рассказал что и как. Я всего лишь прошу помочь с программой.
0
|
|
|
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
|
|
| 01.10.2021, 23:11 | |
|
goodrogrammer, Работа Вашей программы начинается с авторизации, так ? Если пользователь авторизирован успешно (введенные логин и пароль найдены в БД), то Вы имеете его данные, вычитанные в запросе авторизации.
Эти данные лучше всего поместить в Модель, экземпляр класса из папки Models проекта. Она будет доступна всем формам приложения, сколь много их ни будет. В числе прочих атрибутов - полей модели, есть и "роль". Ее-то Вы и анализируете, настраивая интерфейс. В частности для админа показываете кнопку "для администрации", для остальных кнопка невидима. Точно так же строите логику построения всего интерфейса приложения. По принципу, что можно Юпитеру, то нельзя быку
0
|
|
|
296 / 120 / 33
Регистрация: 06.03.2016
Сообщений: 453
|
|||||||||||||||||||||
| 01.10.2021, 23:21 | |||||||||||||||||||||
|
MsGuns его не интересуют пояснения нисколько. Это уже, наверное, третья тема про роли его. За это время сам уже мог бы сделать, т.к. всё ищется с первой/второй ссылки максимум. В черный список таких)))
goodrogrammer, развлекайтесь дальше сами. Как хотите. За год на форуме можно было в элементарном разобраться уже. Понятия не имею, работает код ниже или нет. Не могу и не хочу проверять.
0
|
|||||||||||||||||||||
|
40 / 44 / 1
Регистрация: 19.01.2021
Сообщений: 534
|
|
| 02.10.2021, 00:33 [ТС] | |
|
ipsorokin, Сами сделали?
Добавлено через 1 минуту ipsorokin, Что Вы имели ввиду написав это - "За год на форуме можно было в элементарном разобраться уже" ? Добавлено через 56 секунд ipsorokin, До этого я занимался С+. Добавлено через 37 минут ipsorokin, Спасибо за помощь, пойду разбираться.
0
|
|
| 02.10.2021, 00:33 | |
|
Как сделать, чтобы в Windows XP роль мыши исполнял джойстик ? Какова роль new int в приведенном коде Какую роль в коде выполняет амперсанд Какую роль выполняют идентификаторы в приведенном коде? Объясните фрагмент в коде: какую роль играет split() Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|