【问题标题】:How to generate an email confirmation link from the web server to the client如何生成从 Web 服务器到客户端的电子邮件确认链接
【发布时间】:2019-10-25 02:26:42
【问题描述】:

我有一个运行 asp.net core 2.2 web api 的 web 服务器和一个 angular 客户端。

现在,我使用此代码生成电子邮件确认链接:

var uriBuilder = new UriBuilder("http://example.com/confirmEmail");
var parameters = HttpUtility.ParseQueryString(string.Empty);
parameters["id"] = user.Id.ToString();
parameters["token"] = token;
uriBuilder.Query = parameters.ToString();

Uri finalUrl = uriBuilder.Uri;

但我认为这不是最佳做法。我应该怎么做呢?

【问题讨论】:

    标签: c# asp.net-web-api asp.net-core-2.2 email-confirmation


    【解决方案1】:

    我使用这样的东西。我认为这是一个很好的观点!

    var code = await _userManager.GenerateEmailConfirmationTokenAsync(identityUser);
    var callbackUrl = Url.Action(
                            "ConfirmEmail",
                            "Account",
                            new { userId = identityUser.Id, code = code },
                            protocol: HttpContext.Request.Scheme);
    
    await emailService.SendEmailAsync(model.Email, "Confirm your account",
                            $"confirm email: <a href='{callbackUrl}'>link</a>");
    

    抱歉,我没有注意到您需要使用绝对 url,但我认为它必须对您有所帮助。 https://stackoverflow.com/a/37609162/8006943

    【讨论】:

    • 这对我不起作用。我的网络服务器(本地主机:9800)与互联网隔离,我的 amgular 客户端(example.com)将请求路由到网络服务器。您的解决方案将具有 localhost:9800/api/account/confirmemail***** 之类的 url,但我需要 example.com/confirmemail**** 之类的 url
    猜你喜欢
    • 2017-07-17
    • 2017-02-07
    • 1970-01-01
    • 2014-08-23
    • 1970-01-01
    • 1970-01-01
    • 2011-01-21
    • 2014-03-19
    • 2015-09-09
    相关资源
    最近更新 更多