2015-07-28 7 views
5

Wdrażam serwer OAuth i muszę przechowywać tokeny odświeżania, w tym celu mam (w tej chwili) wybrane do serializowania tokenów w JSON.Problemy z serializowaniem System.Security.Claims.Claim

Podczas gdy widzę, że JSON zawiera wszystko, co byłoby potrzebne do nawodnienia, kiedy dekompiluję z tokena. Od Jonsa() twierdzenia osadzone nie są poprawnie rekonstruowane.

Jak dotąd uważane dziedziczenie z JsonConverter stworzyć konwerter roszczeń, ale nie widzę sposobu regulacji globalnego JsConfig aby go :(

Może ktoś mi punkt w dobrym kierunku?

wykorzystać

Odpowiedz

3

Więc ...

Oddalając się od kodu i powrót załatwiło sprawę!

Zamiast korzystać z JsonConverter trzeba wykorzystać rodzajowe wersję JsConfig przy zmianie/nadrzędne zachowanie ServiceStack na konkretna klasa, po prostu przyklej na przykład w swoim kodzie rozruchowym usług.

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