如何解决通过电子邮件注册确认期间“ApiKey”参数为空
我有注册确认问题。它显示一个 ArgumentNullException 并且我无法解决这个问题。
这是注册确认模型
[AllowAnonymous]
public class RegisterConfirmationModel : PageModel
{
private readonly UserManager<ScarletSunset.Website.User.Areas.Identity.Data.User> _userManager;
private readonly IEmailSender _sender;
public RegisterConfirmationModel(UserManager<ScarletSunset.Website.User.Areas.Identity.Data.User> userManager,IEmailSender sender)
{
_userManager = userManager;
_sender = sender;
}
public string Email { get; set; }
public bool displayConfirmAccountLink { get; set; }
public string EmailConfirmationUrl { get; set; }
public async Task<IActionResult> OnGetAsync(string email,string returnUrl = null)
{
if (email == null)
{
return RedirectToPage("/Index");
}
var user = await _userManager.FindByEmailAsync(email);
if (user == null)
{
return NotFound($"Unable to load user with email '{email}'.");
}
Email = email;
// Once you add a real email sender,you should remove this code that lets you confirm the account
displayConfirmAccountLink = false;
if (displayConfirmAccountLink)
{
var userId = await _userManager.GetUserIdAsync(user);
var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);
code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code));
EmailConfirmationUrl = Url.Page(
"/Account/ConfirmEmail",pageHandler: null,values: new { area = "Identity",userId = userId,code = code,returnUrl = returnUrl },protocol: Request.Scheme);
}
return Page();
}
}
这是 EmailSender,我从 Microsoft 文档中获取了它
public class EmailSender : IEmailSender
{
public EmailSender(IOptions<AuthMessageSenderOptions> optionsAccessor)
{
Options = optionsAccessor.Value;
}
public AuthMessageSenderOptions Options { get; } //set only via Secret Manager
public Task SendEmailAsync(string email,string subject,string message)
{
return Execute(Options.SendGridKey,subject,message,email);
}
public Task Execute(string apiKey,string message,string email)
{
var client = new SendGridClient(apiKey);
var msg = new SendGridMessage()
{
From = new EmailAddress("Joe@contoso.com",Options.SendGridUser),Subject = subject,PlainTextContent = message,HtmlContent = message
};
msg.AddTo(new EmailAddress(email));
// disable click tracking.
// See https://sendgrid.com/docs/User_Guide/Settings/tracking.html
msg.SetClickTracking(false,false);
return client.SendEmailAsync(msg);
}
}
当我注册新用户时,它显示此错误。错误在 EmailSender 类的 Execute 方法中。我不明白为什么 ApiKey 为空。请帮我解决这个问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。