0

Я создаю приложение, которое близко к завершению. Я добавляю в последние уровни безопасности и функциональности для отправки маркера подтверждения нового пользователя при регистрации. Получение маркера подтверждения первоначальной регистрации было достаточно простым. Токен передается в представление и отправляется электронное письмо. Однако есть два сценария, в которых мне нужно повторно отправить этот токен:SimpleMembership - WebSecurity GetConfirmationToken Problems

  • Когда пользователь перенаправляется на представление под названием «Шаг второй регистрации».
  • Когда пользователь пытается войти в систему, прежде чем они подтвердят свою учетную запись.

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

Я пробовал запрашивать это из таблицы членства, используя приведенное ниже выражение, однако исключение выражается в том, что LastPasswordFailureDate - это null (что и следовало ожидать), поэтому это было невозможно.

Expression<Func<MembershipModel, bool>> query = q => q.UserId == userId; 

Я посмотрел на блогах, подобных Кевин Junghans (ниже), однако WebSecurity.GetConfirmationToken, кажется, не поддерживается больше, как я не могу найти его в любом месте.

Retrieving Confirmation Token

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

Resend Confirmation Email with WebSecurity

Я интересно, если кто имеет какие-либо рекомендации по получении токена подтверждения без написания SQL внутри самого приложения.

ответ

0

В то же время, подумав об этом чуть позже, я наконец понял, почему LastPasswordFailureDate возвращал упомянутые Exception. По сути, я считаю, что я идиот, и забыли добавить ссылку nullable на поля DateTime в моей модели. Я не могу проверить это для исправления в течение нескольких часов, но обновит этот ответ/вопрос в любом случае.

Смежные вопросы