.net core 3.1 вызов секретов пользователя для ключей SendGrid возвращает нулевые значения

Я создал проект после 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 и отправляет электронные письма.

1 ответ

Я нашел возможный ответ на: https://www.twilio.com/blog/2018/05/user-secrets-in-a-net-core-web-app.html

Я изменил Startup.cs на:

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

и теперь значения такие, какими они должны быть. Я, конечно, потратил много времени на поиски ответа не в том месте.

Другие вопросы по тегам