> 2. У вас две таблицы, завязанных на id пользователя. То есть, чтобы проверить принадлежность пользователя к какой-либо конфигурации вам нужно будет обойти две таблицы.
Ну блин я не знаю. Можно вообще все в одной таблице сделать. Вы то как предлагаете?
> 3. Заданное значение в web.config можете изменять не открывая кода вашего сервера. Не знаю, почему мутно. В данном файле хранятся настройки сервера. То есть, если ваш код будете продавать, заказчик сам сможет этот пароль установить.
Ну да в принципе это плюс. Хорошо, вы можете подсказать какой настройкой там можно задать этот пароль? Я в конфигах почти ничего не понимаю. И кстати что за web.config? У меня такого нету, у меня только App.config.
p.s. Позабавило про продажу :) Нет, увы вся это морока ради диплома...
> Суперадминистратор вводит свой обычный пароль и всё. Зачем вам секретная комбинация.
Чтобы получить права суперадминистратора.
> 1. Храните этот пароль в таблице пользователей. С каким нибудь особым именем. Можете с id=0
Как то коряво звучит...
> 2. У вас странная база данных. Вы дублируете данные. Почему вы в таблице пользователей не указали id роли, а в таблице ролей лишь названия? Первый раз вижу такое решение, как у вас.
Это где же я их дублирую? Ни разу не дублирую... Но да, насчет структуры БД да и насчет всей этой админской фигни я уже весь мозг сломал. Ну хоть убей не знаю как правильно это все оформить. Никто мне не хочет говорить как делают в реальных проектах. Как сговорились все.
> 3. Вы реализовываете на c#. Посмотрите, что такое web.config. Может быть имеет смысл там задать пароль супер админа?
Мутная тема. Хотя возможно.... Только чем это будет отличаться от того что я предлагал в самом начале? Т.е. можно тогда уж тупо задать в коде константой хэш пароля и все.
> У вас десктопное приложение или сайт?
Десктоп.
> Обычный пользователь авторизовался. Ввёл вашу комбинацию - стал суперадмином? А так сколько угодно суперадминов - и на всех один пароль?
Да. Именно так. Но один пароль только для получения админки. Для авторизации то у них у всех разные пароли.
С чего бы ему два раза вводить пароль? Нет, он сначала просто входит как обычный пользователь на сервер. Если он уже прописан в БД как супер-админ, то он входит уже супер-админом, иначе он после входа жмет комбинацию клавиш, вводит пароль, получает права и в следующий раз уже только просто входит.
Администратор - это такая же учетная запись как и все остальные. Только в таблице Roles у него будет флаг Admin, а у супер-администратора флаг SuperAdmin. Можете посмотреть вот тут Как правильно описать структуру БД? как я это все организовал. Смысл в том что по секретной комбинации клавиш выскакивает окошко, вводишь пароль, если он верный тебе даются права супер-администратора (и соответствующая пометочка в БД).
Да UI. Я хотел все события (их много) сделать асинхронными. Действий в их обработчиках в общем то немного, зато вызываются часто. Поэтому не хотелось бы плодить потоки.
Вы не правы. Только Task.Run явно заимствует поток из пула. Если не использовать его то асинхронный метод будет выполняться в том же потоке откуда вызван.
Во первых пин тоже хранится в виде MD5 хэша, во вторых его еще надо найти в exe-шнике. В третьих что значит "При установки клиент-сервера задавать пин код."? Ну и наконец это: "Защифровать все жесткими алгоритмами, который допустим выполняется 10 секунд и пин посложнее." вообще не понятно. Что "все"? Когда зашифровать? Один раз при компиляции? Или при создании БД? Когда и что? Я уже вроде сказал что у меня везде используются хэши, ничего более криптостойкого не требуется.
Ну блин я не знаю. Можно вообще все в одной таблице сделать. Вы то как предлагаете?
> 3. Заданное значение в web.config можете изменять не открывая кода вашего сервера. Не знаю, почему мутно. В данном файле хранятся настройки сервера. То есть, если ваш код будете продавать, заказчик сам сможет этот пароль установить.
Ну да в принципе это плюс. Хорошо, вы можете подсказать какой настройкой там можно задать этот пароль? Я в конфигах почти ничего не понимаю. И кстати что за web.config? У меня такого нету, у меня только App.config.
p.s. Позабавило про продажу :) Нет, увы вся это морока ради диплома...