1

我已经按照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 文件并发送电子邮件。

4

1 回答 1

0

我在以下位置找到了可能的答案:https ://www.twilio.com/blog/2018/05/user-secrets-in-a-net-core-web-app.html

我将 Startup.cs 更改为:

services.Configure<AuthMessageSenderOptions>(Configuration.GetSection("AuthMessageSenderOptions"));

现在的价值观是应该的。我确实浪费了很多时间在错误的地方寻找答案。

于 2020-10-18T02:46:43.723 回答