c# - 我可以在代码中使用 header 上发送的 JWT token 吗?

标签 c# jwt

所以我环顾四周,我想知道是否可以以某种方式在代码中使用我在授权请求 header 上发送的 jwt token ,或者一旦请求到达 Web api 端点,它就会丢失?

我想使用 token 来提取某些信息,而不将 token 作为我 body 的一部分发送。

我尝试在我的 Web api 项目中使用 jwt 库,但没有成功

我想使用 token 来提取某些信息,而不将 token 作为我 body 的一部分发送。例如我的电子邮件。

最佳答案

您应该能够从 HttpContext 附加的原则中读取声明

var identity = HttpContext.User.Identity as ClaimsIdentity;
if (identity != null)
{
    return identity.FindFirst("email").Value;   
}

否则,您可以使用 JwtSecurityTokenHandler 验证 token ,获取原则,然后从该原则读取声明:

JwtSecurityTokenHandler tokenHandler = new JwtSecurityTokenHandler();
var principle = tokenHandler.ValidateToken(token, .... );
return principal.Claims.SingleOrDefault(c => c.Type == "email").Value;

您可以从 HttpRequestMessage(请求)的 header 中获取不记名 token 。

IEnumerable<string> headers;
request.Headers.TryGetValues("Authorization", out headers);
return headers.ElementAt(0); // Bearer Token

关于c# - 我可以在代码中使用 header 上发送的 JWT token 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53876463/

相关文章:

python - 如何在Python中使用x和y坐标验证ES384 JWT签名

java - 为什么我的自定义 AuthenticationProvider 无法抛出或处理 BadCredentialsException?

c# - 动态数据显示图表 : change Y axis range

c# - 将列表转换为列表<string>

c# - 将背景图像添加到 asp.net 主网页 asp.net 4.0 和 html5

asp.net - 混合 http/https 环境中的 AspNet.Security.OpenIdConnect.Server (ASP.NET vNext) 权限配置

jwt - 没有 AuthHttp 提供者! Angular2-Jwt 提供程序问题

c# - 自定义 ValidationAttribute 不起作用

c# - 二叉树后序遍历,非递归,无节点标志

c# - 没有发行人的 System.Identitymodel.Tokens.jwt 可能吗?