Проблема с URL в ядре asp. net - PullRequest
1 голос
/ 22 марта 2020

Я реализую функцию подтверждения электронной почты. Я отправляю электронное письмо для активации учетной записи пользователям со ссылкой активации в письме. Я пытаюсь, что когда пользователь нажимает на ссылку в электронном письме, он перенаправляет пользователя на один из моих методов ConfirmEmail , который принимает два параметра user , который является зашифрованной электронной почтой и код . Когда я нажимаю на ссылку с отладчиком, для которого установлен этот метод ConfirmEmail, он не попадает туда.

 var htmlContent = "<h4>Click on the link below to confirm your<b> Hello World</b> account:</h4>"
                                         + "</br>"
                                         + "<a href=https://localhost:44372/api/User/ConfirmEmail?user=" + EncryptedEmail + "&code=" + code + ">Activate Account</a>";

Метод ConfirmEmail:

        [HttpGet]
        public IActionResult ConfirmEmail(string user, string code)
        {

            //Do work here
            return Ok();
        }  

Ссылка в электронном письме выглядит следующим образом:
https://localhost: 44372 / api / User / ConfirmEmail? user = oBDULGKPcDaZoN89XcTtWnz% 2f2m% 2flFwfs & code = 7250
Startup.cs Configure Метод:

 public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        app.UseHttpsRedirection();

        app.UseRouting();

        app.UseAuthorization();

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllers();
        });

    }

1 Ответ

1 голос
/ 22 марта 2020

Похоже, это контроллер API, поэтому вам нужно добавить маршрут к конечной точке. Вы можете сделать это, добавив маршрут к атрибуту глагола Http. Дополнительная информация о маршрутизации атрибута

[HttpGet("ConfirmEmail")]
public IActionResult ConfirmEmail(string user, string code)
{
}  

Это перенаправит запрос GET на /api/user/confirmemail, тогда как раньше он, вероятно, направлялся на /api/user.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...