我已经按照https://docs.microsoft.com/en-us/aspnet/core/security/authentication/accconfirm?view=aspnetcore-3.1&tabs=visual-studio建立了一个项目
从 Startup.cs:
services.AddTransient<IEmailSender, EmailSender>();
services.Configure<AuthMessageSenderOptions>(Configuration);
_secretOne = Configuration["SecretStuff:SecretOne"];
添加了 _secretOne 变量以证明正在访问正确的 secrets.json 文件。它同时具有 SecretStuff 块和 AuthMessageSenderOptions 块。
在 EmailSender.cs 中
public EmailSender(IOptions<AuthMessageSenderOptions> optionsAccessor)
{
Options = optionsAccessor.Value;
}
Options = 之后的断点显示具有空值的键。
最终我放弃并硬编码了 Options.SendGridKey 和 Options.SendGridUser 并且通过这个更改项目可以正常工作。
这是我第一次使用 User-Secrets,所以当它不起作用时,我设置了一个控制台应用程序,它引用相同的 secrets.json 文件并发送电子邮件。