繁体   English   中英

在 C# .NET 中创建和验证 JWT 令牌

[英]Creating And Validating JWT Tokens In C# .NET

我正在使用 C# asp.net 我想为我的网页使用 jwt 令牌。 因此,每当页面加载时,我都必须使用 jwt,我是初学者所以我不太了解,我知道它是如何工作的,但我不知道从哪里开始或如何准确实施。 我有一个登录页面,我只需要 jwt 作为“在线 ID/管理员/用户名”。 使用这些 SymmetricSecurityKey SigningCredentials JwtHeader JwtPayload JwtSecurityToken JwtSecurityTokenHandler WriteToken var token = handler.ReadJwtToken(tokenString); 谷歌搜索给出了 .net 核心的结果,这不是我想要的,有人可以帮助我吗? 谢谢

我尝试了一些代码片段,但我确定我没有以正确的方式做

要使用 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);
    }

然后,在具有授权属性的操作中,您必须在请求 header 中发送上面创建的令牌。

[HttpPost]
[Authorize]
public async Task<IActionResult> Test(TestRequest input)
{
    .
    .
    .
}

我写了一个简单的例子,你可以从这个链接看到完整的实现例子 JWT

暂无
暂无

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM