我正在使用C#asp.net我想为我的网页使用jwt令牌。所以每当页面加载时,我必须使用jwt,我是初学者,所以我没有太多的想法,我知道它是如何工作的,但我不知道从哪里开始或如何准确地实现。我有一个登录页面,我只需要jwt用于“在线id/admin/username”。使用这些SymmetricSecurityKey SigningCretials JwtHeader JwtPayload JwtSecurityToken JwtSecurityTokenHandler WriteToken var token=handler. ReadJwtToken(token enString);谷歌搜索给出了我的.net core结果,这不是我想要的,有人能帮我吗?谢谢
我尝试了一些代码片段,但我确定我的方法不对
要使用JWT进行身份验证,您必须首先注册用户并将其存储在数据库中。登录并使用数据库信息验证用户时,请使用以下代码创建JWT令牌。
public static string GenerateJwtToken()
{
DateTime value = DateTime.Now.AddMinutes(20.0);
byte[] bytes = Encoding.ASCII.GetBytes("MIIBrTCCAaGg ...");
SigningCredentials signingCredentials = new SigningCredentials(new SymmetricSecurityKey(bytes), "http://www.w3.org/2001/04/xmldsig-more#hmac-sha256");
SecurityTokenDescriptor tokenDescriptor = new SecurityTokenDescriptor
{
Expires = value,
SigningCredentials = signingCredentials
};
JwtSecurityTokenHandler jwtSecurityTokenHandler = new JwtSecurityTokenHandler();
SecurityToken token = jwtSecurityTokenHandler.CreateToken(tokenDescriptor);
return jwtSecurityTokenHandler.WriteToken(token);
}
然后,在具有Authorize属性的操作中,您必须在请求标头中发送上面创建的令牌。
[HttpPost]
[Authorize]
public async Task<IActionResult> Test(TestRequest input)
{
.
.
.
}
我写了一个简单的例子,你可以从这个链接中看到JWT的完整实现示例