Я создаю приложение, которое близко к завершению. Я добавляю в последние уровни безопасности и функциональности для отправки маркера подтверждения нового пользователя при регистрации. Получение маркера подтверждения первоначальной регистрации было достаточно простым. Токен передается в представление и отправляется электронное письмо. Однако есть два сценария, в которых мне нужно повторно отправить этот токен:SimpleMembership - WebSecurity GetConfirmationToken Problems
- Когда пользователь перенаправляется на представление под названием «Шаг второй регистрации».
- Когда пользователь пытается войти в систему, прежде чем они подтвердят свою учетную запись.
В первом сценарии есть кнопка на странице, в которой может быть легко вставлен токен, что делает эту задачу простой. Однако на странице входа не будет этой функции, сервер будет знать только адрес электронной почты пользователя. Сохраняя принцип DRY
, я объединяю его в один метод, однако, хотя я могу получить адрес электронной почты, зарегистрированный пользователем, я не могу найти подходящий вызов WebSecurity
или Membership
, который получает токен подтверждения.
Я пробовал запрашивать это из таблицы членства, используя приведенное ниже выражение, однако исключение выражается в том, что LastPasswordFailureDate
- это null
(что и следовало ожидать), поэтому это было невозможно.
Expression<Func<MembershipModel, bool>> query = q => q.UserId == userId;
Я посмотрел на блогах, подобных Кевин Junghans (ниже), однако WebSecurity.GetConfirmationToken
, кажется, не поддерживается больше, как я не могу найти его в любом месте.
Я даже видел следующую ссылку, которая указывает на вопрос о StackOverflow и быть честным, я не хочу, чтобы его реализации в этой усадьбе, как я потратил огромное количество с использованием шаблона репозитория EntityFramework, чтобы сделать все это для меня.
Resend Confirmation Email with WebSecurity
Я интересно, если кто имеет какие-либо рекомендации по получении токена подтверждения без написания SQL внутри самого приложения.