首页 > 解决方案 > 电子邮件确认后如何将用户重定向到主页?

问题描述

我试图在用户点击电子邮件验证链接后将他们重定向到主页。但是,它不会重定向到return URL指定的。

            EmailConfirmationUrl = Url.Page(
                "/Account/ConfirmEmail",
                pageHandler: null,
                values: new { area = "Identity", userId = userId, code = code, returnUrl = "/Index" },
                protocol: Request.Scheme);

/Index在用户单击电子邮件确认 URL 后,如何将用户返回到主页?目前,它停留在仅带有确认电子邮件标题的页面上。当我尝试测试它以在单击 URL 时重定向到www.google.com时,EmailConfirmationUrl 的示例如下:

https://localhost:44376/Identity/Account/ConfirmEmail?userId=1bc31c65-1a8d-4511-9399-af83c2a98285&code=Q2ZESjhPRkRBdzJRNVE1T29wbGF6UnhpSUY5ZWk0dDlDc3U5WEcrUnBxVlNwTlpscmpzaXdSbk5XVnE1RWVxZmUyc2dRNTF4R0xtNG5yZUN1WldDb0RWK2hud0dZKzV3bFlLYVNYdDAvSFZrUEIvMEZ5cDFFRld5OEVlOE1pVmdiMDZVSERTUU5yZGIwMEhOWTdzcFkvMDRacjkwZmtSUXExUHlZb0RLMXc4RFJhNVN2NnVsVks5WVQ5cm1iZWVRTU94RUJBVFBOV0RqcmxkMDdSWGZSTVBHVHk1Y3FyVmZIK0FGQmpHMlNja1BpY21UMkZGcXBFTmhFWHZwdFAyRXNVUEc0QT09&returnUrl=https%3A%2F%2Fwww.google.com%2F

标签: asp.net

解决方案


在您的 ConfirmEmail.cshtml.cs 中,OnGet进行如下配置。它可能是一种async方法,因为我记得UserManager有一种async方法ConfirmEmailAsync

public IActionResult OnGet(int userId, string code, string returnUrl)
{
    // Perform your confirmation check.
    
    // And then redirect if passed.
    return LocalRedirect(returnUrl);
}

推荐阅读