通过电子邮件注册确认期间“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 为空。请帮我解决这个问题。

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...