Я пытаюсь подтвердить электронную почту с помощью системы Identity 2.0 ASP.NET.Строка не принимается правильно в действии asp.net с использованием GET
Все работает плавно. Я получаю токен (код) в электронной почте, а затем нажимаю его.
http://www.mywebsite.com/Account/[email protected]&token=bkuVkQZUdEYrcrkcGWuzuPJsPt9cgk77oEZg5c4NVzfjye5THEtzQunBN7+/3SBOEbbmWD2K1loZfEUTh0ggm3qKuvKYGl9b0TWJBStHEeq8/G5RJ+dAvHh/fdt8Vtt5xyxHUgXMgT6+tDMox0Skfg==
Однако, когда я получаю маркер в моем действии, плюс знаки удаляются и заменяются пробелами. И, очевидно, подтверждение терпит неудачу.
// GET: /Account/ConfirmEmail
[AllowAnonymous]
public async Task<ActionResult> ConfirmEmail(string Email, string token)
{
if (Email == null || token == null)
{
return View("Error");
}
ApplicationUser user = UserManager.FindByEmail(Email);
var result = await UserManager.ConfirmEmailAsync(user.Id, token);
if (result.Succeeded)
{
return RedirectToAction("Confirmed", "Account");
}
else
{
return View("Error");
}
}
Я получаю эту фишку:
bkuVkQZUdEYrcrkcGWuzuPJsPt9cgk77oEZg5c4NVzfjye5THEtzQunBN7 /3SBOEbbmWD2K1loZfEUTh0ggm3qKuvKYGl9b0TWJBStHEeq8/G5RJ dAvHh/fdt8Vtt5xyxHUgXMgT6 tDMox0Skfg ==
Что я должен сделать, чтобы избежать этого?
Попробуйте «url закодировать» ваш токен. у вас есть некоторые косые черты, которые могут испортить разбор. Или вы можете использовать настраиваемое связующее устройство для правильного чтения токена. Вот статья о привязках к модели: http://www.codeproject.com/Articles/605595/ASP-NET-MVC-Custom-Model-Binder –