Вход по логину и паролю в БД T-SQL в программе c#

278
18 декабря 2017, 11:38

Здравствуйте! Есть необходимость входа в программу по логин и паролю. Слышал, что отдельная таблица не подходит с целью улучшения безопасности. Как это можно осуществить?

Answer 1

Стандартная трёх уровневая архитектура.

  1. Программа клиент.

  2. Бизнес логика и код на сервере, предоставляющая (Web API, Rest, WebService) для доступа программе.

  3. База данных на сервере.

Схема работы такая:

По умолчанию программа может только вызывать функцию bool TryLogin(string username, string password) если пользователь залогинелся то в сессии, либо более современный способ в JWT токене хранится информация о пользователе, из которой можно получить его права.

Дале для каждой операции сначала идёт проверка прав, есть ли у данного пользователя права для выполнения данной операции. Если прав нету то выдаётся ошибка.

Таким образом к базе данных имеет доступ только тот пользователь, который авторизован для данной операции, кроме того доступ идёт не к самой базе данных а к API который предоставляет сервис (2-ой уровень).

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

Пользователь никак не может получить таблицу с паролями, так как 1. Этого не позволяет API системы. 2. Любые операции делаются под конкретным пользователем с конкретными правами.

Кроме того пароли на сервере обычно хранят в зашифрованном виде, на случай если кто-то всё-таки умудрился получить доступ к базе, например через exploit или нечестный админ на сервере.

В ручнею нету необходимости всё это создавать с нуля, для этого есть много разных готовых библиотек. В случае с C# есть например Identity.

READ ALSO
Сортировка экземпляров классов

Сортировка экземпляров классов

Как можно сортировать такой List по name?

174
Вывести элементы с ответа от сервера в DataGridView

Вывести элементы с ответа от сервера в DataGridView

Вывести элементы с ответа от сервераПриходит ответ от сервера

226
Проблема с поиском числа инверсий в массиве через алгоритм MergeSort

Проблема с поиском числа инверсий в массиве через алгоритм MergeSort

Есть рабочий алгоритм MergeSortНужно модифицировать его так, чтобы он по совместительству находил и число инверсий в массиве

343
Не меняется тема в приложении Android на axml

Не меняется тема в приложении Android на axml

Пытаюсь убрать верхнюю строку с названием приложения и поменять тему с черной на белую с помощью параметра

210