【发布时间】:2020-03-10 20:51:31
【问题描述】:
我正在尝试使用 asp.net core 3 构建电子邮件确认链接。生成令牌后,使用此代码生成确认电子邮件链接始终返回 null。
var token = await _userManager.GenerateEmailConfirmationTokenAsync(user);
var confirmationLink = Url.Action(
"ConfirmEmail",
"Users",
new { userId = user.Id, token }, protocol: Request.Scheme
);
这是一个没有 mvc 的 .net core 3 web api 项目。在启动时配置是使用:app.UseRouting()。
我在上面做错了什么以及为什么它总是返回 null。为了返回正确的期望值,我需要满足什么方法?
【问题讨论】:
-
我可能是错的 - 但
Url.Action不会同时验证 Controller 和 Action 方法,并删除它无法验证存在的任何部分吗? -
@SamAxe 我相信是这样,因为它必须查看路由以生成正确的 URL,因为它不一定总是
/Controller/Action?id=...。我不确定 userId 和 token plus 路由是否也会起作用。我会说添加控制器/动作的方法签名和类定义。还要确保在类或操作中包含任何属性,因为两者都可以根据它们是什么来产生影响。 -
@SamAxe 是的,你是对的,你的解释,结合飞寒的回答,我能够做更多的研究并找到一个我能够修改并使其适用于我的案例的例子。是的,我错过了控制器上提到的所需的“ConfirmEmail”方法
标签: c# asp.net-core razor