反序列化问题 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]);
};
我正在实现一个 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]);
};