Я видел это несколько раз, но я все еще не могу его решить.MVC 5, Invalid Token
Мой процесс регистрации хорошо работает в 99% случаев. Но иногда я получаю недопустимую ошибку токена при подтверждении адреса электронной почты (по ссылке в электронном письме). Я даже URL-кодирование/декодирование токена теперь тоже, но я все равно получаю случайную ошибку.
Регистрация действие:
string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
code = System.Web.HttpUtility.UrlEncode(code);
var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
и Подтверждение действия:
code = System.Web.HttpUtility.UrlDecode(code);
var result = await UserManager.ConfirmEmailAsync(userId, code);
Я могу подтвердить каждый 'провал' пользователь действительно имеет штамп безопасности. И имя/имя пользователя не содержит никаких хитроумных символов.
Есть ли что-нибудь еще, что я могу проверить?
У вас есть 'MachineKey' в вашем web.config? – trailmax
Хммм нет, я этого не делаю. Я выработаю, как добавить его и сообщить, как я себя чувствую. Поскольку проблема прерывистая, может потребоваться некоторое время, чтобы определить, работает ли она или нет. Спасибо за указатель. –
Часть маркера содержит имя веб-приложения (определенное в IIS), и если вы запустите его в облаке, после перезагрузки приложения вы можете получить другое имя - это также может вызвать вашу проблему. Но машинный ключ _hould_ исправить. Просто для подтверждения - получите токен, перезапустите IIS, попробуйте подтвердить токен, затем сделайте то же самое с машинным ключом. – trailmax