[英]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.