2015-07-28 8 views
5

मैं एक ओथ सर्वर को कार्यान्वित कर रहा हूं और इसे ताज़ा करने के लिए ताज़ा टोकन स्टोर करने की आवश्यकता है, ऐसा करने के लिए मेरे पास JSON में टोकन को क्रमबद्ध करने के लिए चुना गया है (फिलहाल)।समस्याएं de-serializing System.Security.Claims.Claim

जबकि मैं देख सकता हूं कि जेएसओएन में रीहाइड्रेट करने के लिए आवश्यक सभी चीजें शामिल हैं, जब मैं टोकन के साथ डी-सीरियलाइज करता हूं। फ्रॉमजसन() एम्बेडेड दावों का सही ढंग से पुनर्निर्माण नहीं किया जा रहा है।

अब तक मैं JsonConverter से इनहेरिट एक दावों कनवर्टर बनाने के लिए माना जाता है, लेकिन यह :(

किसी भी एक मुझे एक अच्छा दिशा में बात कर सकते हैं?

उपयोग करने के लिए वैश्विक JsConfig को एडजस्ट करने का एक तरीका नहीं दिख रहा है

उत्तर

3

तो ...

कोड से दूर चाल एक JsonConverter उपयोग करने के बजाय चलना और लौटने किया!

आप जब बदलते/पर ServiceStack के व्यवहार अधिभावी JsConfig के जेनेरिक वर्जन का उपयोग करने की आवश्यकता है एक विशिष्ट वर्ग, उदाहरण के लिए अपनी सेवाओं स्टार्ट-अप कोड में बस निम्न चिपकाएं।

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]); 
    }; 
संबंधित मुद्दे