Разрешение входа в систему с использованием нескольких форм ID - PullRequest
0 голосов
/ 27 сентября 2018

Я создал веб-страницу ASP.net, которая позволяет пользователю создать учетную запись.Этот сайт предназначен исключительно для моей собственной практики со средой, но у меня есть вопрос о том, как лучше всего выполнить вход в систему.

Мой сайт более или менее (в конечном итоге) будет похож на Twitter.

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

На моей странице входа в систему я хочу, чтобы пользователь мог войти в систему с любым из этих трех параметров (адрес электронной почты, идентификатор компании или маркер).

Путаница, с которой я работаюв: что, если кто-то делает ручку, которая совпадает с чьим-либо идентификатором?Как мне справиться с этим?

Наилучшим ли вариантом будет проверка на основе пароля (соленого и хешированного), если он соответствует более чем одному?Я бы догадался, нет, но я не уверен.

Теперь я знаю, что существует множество различных вариантов решения этой проблемы (требуется, чтобы по крайней мере одна буква в дескрипторе пользователя была основной, которая приходит на ум, или, как кто-то прокомментировал, добавила ограничение котрицать создание, если идентификатор уже существует), но так как для меня это всего лишь умственное упражнение, я думаю, мне следует кое-что узнать об этом.

1 Ответ

0 голосов
/ 27 сентября 2018

Позвольте пользователям указывать тип учетных данных, которые они предоставляют.

Создайте отдельную форму входа для каждого типа учетных данных: идентификатор компании, дескриптор, адрес электронной почты.Когда пользователь посещает сайт, вы просите его выбрать тип учетных данных, которые они предоставляют.Вы даже можете запомнить это предпочтение в хранилище браузера.

Когда форма опубликована, вы точно знаете, что нужно проверять.Вам не нужно беспокоиться о том, что ручка совпадает с идентификатором компании.Храните идентификатор компании, адрес и адрес электронной почты как отдельные поля в базе данных для каждой учетной записи пользователя.

Это похоже на сайты, которые используют федеративную аутентификацию и дают пользователю возможность войти в систему с помощью Google или Facebook.

enter image description here

...