2015-07-28 25 views
5

我正在實現一個oAuth服務器並需要存儲刷新標記,爲此我有(現在)選擇將標記序列化爲JSON。解序列化問題System.Security.Claims.Claim

儘管我可以看到JSON包含了所有需要重新水化的內容,但是當我使用token.FromJson()解序列化嵌入的聲明時,並未正確重構。

到目前爲止,我認爲從JsonConverter繼承創建索賠轉換器,但沒有看到調整全球JsConfig利用它:(

任何一個可以指向我一個很好的方向?

的方式

回答

3

所以......

步行從代碼離開和返回的伎倆!

而不是使用一個JsonConverter的你需要利用JsConfig仿製改變/覆蓋ServiceStack上的行爲時,例如,一個特定的類,只需將以下內容粘貼到您的服務啓動代碼中即可。

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]); 
    };