2012-11-21 11 views
13

मैं एक एएसपी.Net साइट माइग्रेट कर रहा हूं जो .NET 4.5 का उपयोग करने के लिए सक्रिय फेडरेशन और WIF 3.5 का उपयोग करता है। विंडोज आइडेंटिटी फाउंडेशन (डब्ल्यूआईएफ 3.5) की कार्यक्षमता अब नेट 4.5 फ्रेमवर्क में पूरी तरह से एकीकृत हो गई है।मैं वाईफ़ाई 4.5 में सुरक्षा टोकन हैंडलर संग्रह कैसे प्राप्त करूं?

चूंकि कक्षाएं तीन अलग-अलग नामस्थानों में स्थानांतरित हो गई हैं, यह ज्यादातर यांत्रिक अनुवाद का विषय है। जिस हिस्से में मुझे परेशानी हो रही है, वह पर कॉल के लिए एसटीएस द्वारा दावे प्रिंसिपल को जारी GenericXmlSecurityToken का अनुवाद कर रहा है।

var genericToken = channel.Issue(rst) as GenericXmlSecurityToken; 

var handlers = FederatedAuthentication.ServiceConfiguration.SecurityTokenHandlers; 

var token = handlers.ReadToken(new XmlTextReader(new StringReader(genericToken.TokenXml.OuterXml))); 
var identity = handlers.ValidateToken(token).First(); 

var sessionToken = new SessionSecurityToken(ClaimsPrincipal.CreateFromIdentity(identity), 
              TimeSpan.FromMinutes(20)); 

FederatedAuthentication.SessionAuthenticationModule.WriteSessionTokenToCookie(sessionToken); 
: प्रलेखन कमी है और मैं बस FederatedAuthentication.ServiceConfiguration.SecurityTokenHandlers

यहाँ तक पहुँचने के लिए WIF 4.5 रास्ता खोजने की जरूरत है WIF 3.5 कोड कि WIF 4.5 में संकलन नहीं करता है (WSTrust चैनल निर्माण संक्षिप्तता के लिए छोड़े गए) का एक टुकड़ा है

उत्तर

14

फिक्स काफी सरल साबित हुआ (यदि तुरंत स्पष्ट नहीं है)।

FederatedAuthentication.ServiceConfiguration.SecurityTokenHandlers 

FederatedAuthentication.FederationConfiguration.IdentityConfiguration.SecurityTokenHandlers 

केवल अन्य परिवर्तन new ClaimsPrincipal(identity) साथ ClaimsPrincipal.CreateFromIdentity(identity) कारखाने विधि कॉल की जगह के रूप में किया गया था WIF 4.5 करने के लिए अनुवाद। *** क्या है *** नाम स्थान *** और *** विधानसभा -

var handlers = FederatedAuthentication.FederationConfiguration.IdentityConfiguration.SecurityTokenHandlers; 

var token = handlers.ReadToken(new XmlTextReader(new StringReader(genericToken.TokenXml.OuterXml))); 
var identity = handlers.ValidateToken(token).First(); 

var sessionToken = new SessionSecurityToken(new ClaimsPrincipal(identity), 
              TimeSpan.FromMinutes(20)); 

FederatedAuthentication.SessionAuthenticationModule.WriteSessionTokenToCookie(sessionToken); 
+1

'FederatedAuthentication.FederationConfiguration.IdentityConfiguration.SecurityTokenHandlers':

नीचे काम कर रहे टुकड़ा है? – Kiquenet

+0

@ किकनेट 'सिस्टम। इडेंटिटीमोडेल सर्विसेज', जो एक अलग असेंबली है –

संबंधित मुद्दे