【发布时间】:2018-10-03 05:43:09
【问题描述】:
我有一个项目,我想从请求中验证令牌。我项目的 .NETFramework 版本是 3.5。我正在尝试在我的项目中使用以下代码和这些代码,我已在另一个项目中使用来验证 .NETFramework 版本为 4.5.2 的令牌。
using Microsoft.IdentityModel.Tokens;
using System;
using System.Collections.Generic;
using System.IdentityModel.Tokens.Jwt;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TokenValidator
{
public class TokenValidator
{
public static bool IsTokenValid(string token, string secretKey)
{
string tokenPGID;
JwtSecurityToken validatedToken;
try
{
validatedToken = ValidateToken(token, secretKey) as JwtSecurityToken;
return true;
}
catch (Exception)
{
return false;
}
}
private static SecurityToken ValidateToken(string token, string secretKey)
{
var handler = new JwtSecurityTokenHandler();
var tokenS = handler.ReadToken(token) as JwtSecurityToken;
TokenValidationParameters tokenValidationParameters = new TokenValidationParameters
{
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(secretKey)),
RequireExpirationTime = true,
ValidateLifetime = true,
ValidateAudience = false,
ValidateActor = false,
ValidateIssuer = false
};
SecurityToken securityToken = new JwtSecurityToken();
handler.ValidateToken(token, tokenValidationParameters, out securityToken);
return securityToken;
}
}
}
但是,我的项目出现以下错误:
错误无法安装包'System.IdentityModel.Tokens.Jwt 5.2.1'。您正在尝试将此包安装到以“.NETFramework,Version=v3.5”为目标的项目中,但该包不包含 任何与其兼容的程序集引用或内容文件 框架。如需更多信息,请联系包作者。
有没有办法在 .NETFramework 3.5 的项目中验证 JWT 令牌意味着我应该使用哪个版本的包来兼容 .NET 3.5?
还有其他方法可以在 .NET 3.5 中验证 JWT 令牌吗?
【问题讨论】:
-
4.4 不工作。我尝试使用 NuGet 安装该软件包
标签: asp.net .net-3.5 jwt .net-4.5