如何命名 Sendgrid api 键和名称并将其添加到 appSetting.json

How do I name and add Sendgrid api key and name to appSetting.json

如何命名 Sendgrid api 键和名称并将其添加到 appSetting.json

   {
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*",
  "ConnectionStrings": {
    "AuthDbContextConnection": "Server=(localdb)\mssqllocaldb;Database=Authorization;Trusted_Connection=True;MultipleActiveResultSets=true"
  },
    "SendGridUser": "RickAndMSFT",
    "SendGridKey": "<key removed>"

}

How do I name and add Sendgrid api key and name to appSetting.json

正如您在示例 appsettings.json 中所做的那样,您可以在 JSON 配置文件的根部分下添加 SendGrid 用户机密。

要读取上面的 SendGrid 用户机密相关配置值,我们可以使用 options pattern,如下所示。

创建如下AuthMessageSenderOptionsclass

public class AuthMessageSenderOptions
{
    public string SendGridUser { get; set; }
    public string SendGridKey { get; set; }
}

注册AuthMessageSenderOptions配置实例

services.Configure<AuthMessageSenderOptions>(Configuration);

注入IOptions<AuthMessageSenderOptions>实例,读取自定义服务或控制器等AuthMessageSenderOptions配置数据

private readonly AuthMessageSenderOptions _optionsAccessor;
public HomeController(ILogger<HomeController> logger, IOptions<AuthMessageSenderOptions> optionsAccessor)
{
    _logger = logger;
    _optionsAccessor = optionsAccessor.Value;
}
public IActionResult Index()
{
    //...
    var sender = _optionsAccessor.SendGridUser;

    //...

测试结果