反序列化问题 System.Security.Claims.Claim

Problems de-serializing System.Security.Claims.Claim

我正在实现一个 oAuth 服务器并且需要存储刷新令牌,为此我(目前)选择将令牌序列化为 JSON。

虽然我可以看到 JSON 包含再水化所需的一切,但当我使用 token.FromJson() 反序列化时,嵌入的声明没有被正确重建。

到目前为止,我考虑过从 JsonConverter 继承来创建一个声明转换器,但没有看到调整全局 JsConfig 以利用它的方法:(

谁能给我指出一个好的方向?

所以...

离开代码然后返回就成功了!

当 changing/overriding ServiceStack 在特定 class 上的行为时,您需要使用 JsConfig 的通用版本,而不是使用 JsonConverter,只需在您的服务启动代码中粘贴以下内容例如。

JsConfig<Claim>.SerializeFn = claim => string.Format("{0}|{1}", claim.Type, claim.Value);

JsConfig<Claim>.DeSerializeFn = claimDetails =>
  {
    var values = claimDetails.Split('|');
    return new Claim(values[0], values[1]);
  };