简体   繁体   English

如何从.Net 6 中的 class 中的 appsettings.json 读取值?

[英]How to read values from appsettings.json inside a class in .Net 6?

I want to access the values of the Configurations Variables in another class.我想访问另一个 class 中的配置变量的值。

Here is the appsetting.json:这是appsetting.json:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
"AllowedHosts": "*",
"Configurations": {
   "FirstVerificationValidationDurationMinutes": 2,
   "ResendedVerificationValidationDurationMinutes": 2,
   "JwtRegisterTokenValidationDurationMinutes": 30,
   "JwtLoginTokenValidationDurationMinutes": 30
 }
}

And Here I want to use JwtLoginTokenValidationDurationMinutes 's value (which is declared inside appsettings.json as you can see ablove) inside the class below:在这里,我想在下面的 class 中使用JwtLoginTokenValidationDurationMinutes的值(如您所见,在 appsettings.json 中声明):

public async Task<UserCredentialDto> JwtAuthentication(UserCredentialViewModel userCredential)
    {

        var user = await _userService.LoginUser(userCredential);

        if (user is null)
        {
            return new UserCredentialDto
            {
                Status = new StatusMaker().ErrorStatus(user.Status.Message)
            };
        }

        

        //TODO
        var _key = "This is for test";

        var tokenHandler = new JwtSecurityTokenHandler();
        var tokenKey = Encoding.ASCII.GetBytes(_key);


        //var tokenValidationDuration = HERE I NEED THE VALUE //HOW TO ACCESS VALUES FROM appsettings.json?

        var tokenDescriptor = new SecurityTokenDescriptor
        {
            Subject = new ClaimsIdentity(claims),
            Expires = DateTime.UtcNow.AddMinutes(/*tokenValidationDuration*/),
            SigningCredentials = new SigningCredentials(
                new SymmetricSecurityKey(tokenKey),
                SecurityAlgorithms.HmacSha256Signature)
        };

        var token = tokenHandler.CreateToken(tokenDescriptor);


        return new UserCredentialDto
        {
            Token = tokenHandler.WriteToken(token)
        };
    }

}

So how can I access values from appsettings.json?那么如何从 appsettings.json 访问值?

I tried using Microsoft.Extensions.Configuration but it seems it doesn't exist in.Net 6.我尝试使用 Microsoft.Extensions.Configuration 但它似乎在.Net 6 中不存在。

I found the answer, I wanted to share, I hope it would be useful for you.我找到了答案,我想分享,希望对你有用。

Here is my program.cs这是我的程序.cs

//ANSWER HERE * ANSWER HERE * ANSWER HERE * ANSWER HERE
var jwtSecretKey = builder.Configuration.GetSection("Configurations:JwtLoginTokenValidationDurationMinutes").Value;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何读取appsettings.json值ASP.NET Core - How to read appsettings.json values ASP.NET Core 如何从.net核心中的自定义过滤器中的appsettings.json获取连接字符串 - How to get connection string from appsettings.json inside custom filter in .net core 无法让ConfigurationBuilder从ASP.NET Core 1.0 RC2中的xunit类库中的appsettings.json读取 - Unable to get ConfigurationBuilder to read from appsettings.json in xunit class library in ASP.NET Core 1.0 RC2 从包含的类库中访问ASP.net Core appsettings.json? - Access ASP.net Core appsettings.json from an included class library? 如何从 appsettings.json in.Net 5 (Asp.Net) 中 map 多级设置 - How to map multiple levels of Settings from appsettings.json in .Net 5 (Asp.Net) 您如何阅读 appsettings.json 与其前身网络表单相同的风格? - How do you read from appsettings.json in the same style as it's predecessor, webforms? 覆盖来自 Azure 应用程序设置的 appsettings.json 值 - Overriding appsettings.json values from Azure App settings appsettings.Production.json具有来自appsettings.json之后的值 - appsettings.Production.json has values from appsettings.json afte publishing 读取 appsettings.json - 字段保持为空 - Read appsettings.json - Fields remain null 如何将 appsettings.json 中的日志级别参数用于 Serilog? - How to use Logging level parameter from appsettings.json for Serilog?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM