反序列化System.Security.Claims.Claim时出现问题

时间:2015-07-28 11:25:20

标签: servicestack servicestack-text identityserver3

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

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

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

任何人都能指出我的方向吗?

1 个答案:

答案 0 :(得分:3)

因此...

离开代码然后返回就行了!

在更改/覆盖特定类的ServiceStack行为时,您需要使用JsonConvert的通用版本,而不是使用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]);
  };