繁体   English   中英

在 asp.net core api 中创建回调 url

[英]create callback url in asp.net core api

我尝试在 asp.net 核心 API 中使用身份,一切正常,除了我找不到创建回调 url 以进行电子邮件确认的方法。 我搜索了很多,但没有人在 ASP.NET 核心 API 中通过电子邮件确认实现身份。

这是我的RegisterUser代码:

var user = new ApplicationUser
        {
            Name = model.Name,
            Email = model.Email,
            UserName = model.Email
        };

var result = await _userManager.CreateAsync(user, model.Password);

if (result.Succeeded)
{
    await _userManager.AddToRoleAsync(user, "User");

    var token = await _userManager.GenerateEmailConfirmationTokenAsync(user);
    var callbackurl = Url.RouteUrl("ConfirmEmail", new { userId = user.Id, token = token }, protocol: Request.Scheme);
    var message = new Message(
              new string[] { model.Email },
              Messages.Email_Confirmation,
               Messages.Email_CreateUser_Body + "<a href=\"" + callbackurl + "\">link</a>"
            );

    _emailSender.SendEmail(message);

    return Ok();
}

上面的代码'callbackurl'返回null。 我尝试了其他方法来创建 url,但它不起作用。

在此先感谢您的帮助

我找到了根本原因,是因为您缺少路由配置。

在 .net6 中,program.cs

...
app.MapControllers();

// add this code
app.MapControllerRoute(
    name: "ConfirmEmail",
    pattern: "{controller=Home}/{action=Index}/{id?}");

app.Run();

这只是我的测试代码,我在本地重现了这个问题,我遇到了这个问题,在添加app.MapControllerRoute之后,它就可以工作了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM