Я пытаюсь получить подтверждение по электронной почте для подтверждения новой учетной записи пользователя.Токен создается и отправляется по электронной почте пользователю, который получает электронное письмо со ссылкой для подтверждения учетной записи.Когда пользователь нажимает на ссылку, я получаю INVALID TOKEN.
Он размещен на Godaddy (не уверен, что это что-то меняет)
Во время отладки кода я обнаружил, чтотокен, отправляемый для проверки, изначально генерируется таким же образом, с той разницей, что теперь его нижний регистр, может ли это быть проблемой?
Код для генерации токена и отправки по электронной почте
private async Task<string> SendEmailConfirmationTokenAsync(string userID, string subject)
{
string _code = await UserManager.GenerateEmailConfirmationTokenAsync(userID);
var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = userID, code = _code }, protocol: Request.Url.Scheme);
await UserManager.SendEmailAsync(userID, subject, "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");
return callbackUrl;
}
Чтобы подтвердить токен / адрес электронной почты:
[AllowAnonymous]
public async Task<ActionResult> ConfirmEmail(string userId, string code)
{
if (userId == null || code == null)
{
return View("Error");
}
var result = await UserManager.ConfirmEmailAsync(userId, code);
if (result.Succeeded)
{
return RedirectToAction("Create", "Users", new { id = userId });
}
AddErrors(result);
ViewBag.errorMessage = "Error: " + result.Errors;
return View("Error");
}
Также я добавил machineKey в web.config.
<machineKey validationKey="key" decryptionKey="key" validation="SHA1" decryption="AES" />
Все время получаю сообщение об ошибке INVALID TOKEN