Каков рекомендуемый способ работы с пользователями, которые зарегистрированы кем-то другим (т.е. не могут выбрать пароль)? - PullRequest
0 голосов
/ 06 апреля 2019

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

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

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

  • Уникальная ссылка, указанная в электронном письме для аутентификации пользователя?
  • Отдельно зашифрованное поле 'код-пароля', хранящееся в AspNetUsers таблица, которую можно расшифровывать и отправлять каждое электронное письмо?

Стоит отметить, что пользователи с доступом к сайту на уровне администратора все равно будут иметь обычную безопасную настройку Identity user / pass, моя проблема в том,только с пользователями нижнего уровня.

1 Ответ

2 голосов
/ 06 апреля 2019

Я бы полностью забыл о паролях в этом случае.ASP.NET Identity предоставляет вам одноразовые коды, которые вы можете использовать для этого.

В этом руководстве показано в разделе «Настройка подтверждения по электронной почте» какчтобы отправить одноразовые коды по почте (они генерируются самой ASP.NET Identity):

string html = "Please confirm your account by clicking this link: <a href=\"" + message.Body + "\">link</a><br/>";

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

...