पैकेज के भीतर एक वर्ग है जिसे कहा जाता JwtSecurityTokenHandler
है System.IdentityModel.Tokens.SecurityTokenHandler
। WIF में यह डिस्क्रिविलाइज़िंग और सीरीज़िंग सिक्योरिटी टोकन के लिए मुख्य वर्ग है।
कक्षा में एक ReadToken(String)
विधि है जो आपके बेस 64 को JWT स्ट्रिंग को इनकोडेड करेगी और रिटर्न देगी SecurityToken
जो JWT का प्रतिनिधित्व करती है।
यह SecurityTokenHandler
भी एक ValidateToken(SecurityToken)
विधि है जो आपकी लेता है SecurityToken
और एक बनाता है ReadOnlyCollection<ClaimsIdentity>
। आमतौर पर JWT के लिए, इसमें एक एकल ClaimsIdentity
ऑब्जेक्ट होगा जिसमें मूल JWT के गुणों का प्रतिनिधित्व करने वाले दावों का एक सेट होता है।
JwtSecurityTokenHandler
कुछ अतिरिक्त अधिभार को परिभाषित करता है ValidateToken
, विशेष रूप से, इसमें एक ClaimsPrincipal ValidateToken(JwtSecurityToken, TokenValidationParameters)
अधिभार है। TokenValidationParameters
तर्क आप टोकन पर हस्ताक्षर प्रमाणपत्र (की एक सूची के रूप में निर्दिष्ट कर सकते हैं X509SecurityTokens
)। इसमें एक अधिभार भी है जो JWT को एक के string
बजाय लेता है SecurityToken
।
ऐसा करने के लिए कोड बल्कि जटिल है, लेकिन TokenValidationHandler
डेवलपर नमूना में Global.asax.cx कोड ( वर्ग) में पाया जा सकता है, जिसे "ADAL - Native App to REST सर्विस - ACS विथ ब्राउज़र डायलॉग के माध्यम से प्रमाणीकरण" स्थित है।
http://code.msdn.microsoft.com/AAL-Native-App-to-REST-de57f2cc
वैकल्पिक रूप से, JwtSecurityToken
वर्ग में अतिरिक्त विधियां हैं जो आधार SecurityToken
वर्ग पर नहीं हैं , जैसे कि एक Claims
संपत्ति जो ClaimsIdentity
संग्रह के माध्यम से जाने के बिना निहित दावे प्राप्त करती है । इसमें एक Payload
संपत्ति भी है जो एक JwtPayload
वस्तु देता है जो आपको टोकन के कच्चे JSON पर मिलता है। यह आपके परिदृश्य पर निर्भर करता है जो इसे सबसे उपयुक्त लगता है।
SecurityTokenHandler
वर्ग के लिए सामान्य (यानी गैर JWT विशिष्ट) प्रलेखन है
http://msdn.microsoft.com/en-us/library/system.identitymodel.tokens.securitytokenhandler.aspx
आपके आवेदन के आधार पर, आप JWT हैंडलर को किसी भी अन्य हैंडलर की तरह ही WIF पाइपलाइन में कॉन्फ़िगर कर सकते हैं।
इसके विभिन्न प्रकार के अनुप्रयोग में उपयोग के 3 नमूने हैं
http://code.msdn.microsoft.com/site/search?f%5B0%5D.Type=SearchText&f%5B0%5D.Value=aal&f%5B1%5D.Type=User&f%5B1%5D.Value=Azure% 20AD% 20Developer% 20Experience% 20Team और च% 5B1% 5D.Text = Azure% 20AD% 20Developer% 20Experience% 20Team
शायद, कोई आपकी आवश्यकताओं के अनुरूप होगा या कम से कम उनके अनुकूल होगा।