2015-07-28 10 views
5

Ich implementiere einen oAuth-Server und muss Aktualisierungstokens speichern, um dies zu tun, habe ich (im Moment) gewählt, die Token in JSON zu serialisieren.Probleme beim Deserialisieren System.Security.Claims.Claim

Während ich sehen kann, dass der JSON alles enthält, was zum rehydrieren benötigt würde, wenn ich mit token.FromJson() de-serialisieren, werden die eingebetteten Ansprüche nicht richtig rekonstruiert.

Bisher habe ich als von JsonConverter vererben einen Schadenregulierungs Konverter zu schaffen, aber nicht sehen, eine Möglichkeit, die globale JsConfig auf eine Anpassung nutzen :(

Kann jemand mich zeigt in einer guten Richtung?

So

Antwort

3

...

Gehen weg von dem Code und der Rückkehr hat der Trick!

Statt eine JsonConverter der Verwendung benötigen Sie eine generische Version von JsConfig zu nutzen, wenn Ändern/Überschreiben das Verhalten von ServiceStack auf eine bestimmte Klasse, kleben Sie einfach folgendes in Ihren Service Start-Code.

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