.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"));
и теперь значения такие, какими они должны быть. Я, конечно, потратил много времени на поиски ответа не в том месте.