【发布时间】:2018-08-31 15:54:33
【问题描述】:
我对基于令牌的身份验证非常陌生。我可以从 ClaimsPrincipal 主体(身份)读取用户名以外的内容。有什么方法可以读取/写入(存储)不记名令牌中的其他信息。
ClaimsPrincipal principal = Request.GetRequestContext().Principal as ClaimsPrincipal;
var Name = ClaimsPrincipal.Current.Identity.Name;
【问题讨论】:
-
令牌是一个 jwt,如果你解密它,你可以读取它里面的内容。至于写它,真的应该留给身份服务器和 oauth 服务器作为它的工作。
-
如果您想了解有关用户的更多信息,请查看是否可以找到您正在使用的登录服务器的 userinfo 端点。
-
@jps 实际上,由于请求标头的最大长度,承载令牌的大小受到限制,因此向声明中添加额外数据确实不是一个好主意。
-
@DaImTo 是的,有一个限制,通常在 8k 左右,所以一般建议不要在 JWT 中放置太多额外的有效负载是有道理的,但我不会去完全排除这一点.你真的需要很多额外的有效载荷才能达到极限。
-
另一个考虑因素是数据是否会在相关令牌的生命周期内发生变化。您将获得不同步的数据。 (目前在我的前任设置的令牌中处理这个问题)
标签: c# asp.net asp.net-web-api jwt