我在我的应用程序中实现了 SendGrid
,在 Account
控制器中我有一个名为 Register
的方法 . 方法 Register
允许用户在网站上注册,在这个方法里面我有以下代码:
var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);
var callbackUrl = Url.Action("ConfirmEmail", "Account", new
{
userId = user.Id,
token = code
}, protocol: Request.Scheme);
await _emailSender.SendEmailAsync(user.Email, _localizer["ConfirmYourEmail"], _localizer["ConfirmAccountTemplate", callbackUrl]);
如你所见,我生成一个确认码,然后我创建了一个 callBackUrl
,用户可以在电子邮件中找到该确认电子邮件地址 . 最后,我调用了 SendEmailAsync
,这实际上是 Microsoft.AspNetCore.Identity.UI.Services
的接口方法的一个实现 .
现在主要的问题如下:我需要在 Repository
类中使用相同的代码,所以不在 Controller
内,是否有地方存储这种类型的代码而不创建冗余?
PS:我'm sorry if this question seems stupid, but I' m实际上是 ASP.NET Core
的新手,我想学习如何创建一个好的项目结构 .
在此先感谢您的帮助 .
1 回答
这是一个快速标记我没有测试这是否有效 . 您想要创建以下内容,并在依赖注入(DI)中使用它 . 您可能需要添加
IUrlHelper
和IHttpContextAccessor