#c# #asp.net-core #asp.net-web-api #blazor #blazor-webassembly
#c# #asp.сетевое ядро #asp.net-веб-api #блейзор #blazor-веб-сборка
Вопрос:
Я знаю, что этот вопрос уже был задан, но никакой ответ не помог мне решить мою проблему.
Я использую веб-узел blazor, в модуле входа в систему я отправляю электронное письмо с подтверждением новому пользователю, в сообщении, которое приходит на электронную почту, появляется ссылка с подтверждением, которая перенаправляет на пользовательскую страницу подтверждения blazor, которая приветствует систему, в localhost все работает нормально, но когда я публикую приложение на сервере iis, ссылка с подтверждением не перенаправляет меня на страницу приветствия, она остается в пути ссылки, и в приложении она показывает мне, что не смогла найти путь.
Не могли бы вы, пожалуйста, помочь мне
это мой код для отправки сообщения с подтверждением на почту, Эта ссылка находится в методе отправки почты, который содержит всю информацию для отправки электронных писем
var confirmationUrl = $"https://{Request.Host.Value}/api/Cuentas/VerifyEmailAsync?userId={HttpUtility.UrlEncode(userIdentity.Id)}amp;emailToken={HttpUtility.UrlEncode(emailVerificationCode)}";
Эта конечная точка перенаправляет на страницу приветствия после того, как пользователь нажал на ссылку, которую я описал выше в этой публикации:
[AllowAnonymous] [Route("VerifyEmailAsync")] [HttpGet] public async Tasklt;ActionResultgt; VerifyEmailAsync(string userId, string emailToken) { // Get the user var user = await _userManager.FindByIdAsync(userId); // If the user is null if (user == null) // TODO: Nice UI return Content("Usuario no encontrado"); // If we have the user... // Verify the email token var result = await _userManager.ConfirmEmailAsync(user, emailToken); // If succeeded... if (result.Succeeded) { //se usa redirect para enviar a una pagina blazor desde el controlador //return Content("Correo Verificado"); return Redirect($"https://{Request.Host.Value}/cuentaconfirmada"); } // TODO: Nice UI return Content("Token de verificación de correo electrónico no válido"); }
нажав на ссылку, я перейду по следующему маршруту:
https://beta.dominio.mx/api/Cuentas/VerifyEmailAsync?userId=7cc3a7b0-7f40-4d23-abe4-f6778877d6faamp;emailToken=CfDJ8BaQjrGRmsNBsbOJm8bucuOua9CJS4w/vwySE+k0I+tQYzfBc+ysKqkCR9nwHDP7wmHzAkgYo/UiURHwnQd113wslk8Lgo5iqgAPxKWX17x0PYFF8y+ih9BFtzD4RiOn+ZXsZLDWqcga1tjHcDmYfhzh9NwWFZv8AhdLF48BusPZ9bsXiHEUK1WVY8Wgi7j601p/Rds/7TY3rjq6BqpSyHiud3stD16xL5jgn1fLbinlzgm5+HvWegmXa2WICgL01A==
первоначальный маршрут, по которому он должен привести меня, таков:
https://beta.dominio.mx/cuentaconfirmada
в консоли он показывает мне, что все прошло успешно, он показывает мне путь, которым он является на самом деле, и статус 200, но он показывает мне предупреждение:
until I forcefully update it takes me to the correct path
Я уже пытался использовать другие методы перенаправления, думая, что проблема связана с состояниями http, которые возвращает каждый метод, используйте следующее:
Redirect() 302 RedirectPermanent() 301 RedirectPreserveMethod 307
Комментарии:
1. если (результат. Удалось) — может быть, это ложь, когда вы запускаете ее с сервера? попробуйте перенаправить без этого условия