2012-02-27 30 views
8

क्या web.config संपादित किए बिना एज़ूर एसीएस के लिए दायरे यूआरएल, दावे प्रकार आदि स्थापित करना संभव है? क्या आप इन आवश्यक तत्वों को प्रोग्रामेटिक रूप से किसी भी तरह से स्थापित कर सकते हैं?क्या web.config संपादित किए बिना एसीएस दावों को प्राप्त करना संभव है?

संपादित करें: विशेष रूप से मैं चाहता हूँ इस से छुटकारा पाने के:

<federatedAuthentication> 
    <wsFederation passiveRedirectEnabled="true" issuer="https://mynamespace.accesscontrol.windows.net/v2/wsfederation" realm="http://localhost:81/" requireHttps="false" /> 
</federatedAuthentication> 

असल में, मैं नहीं चाहता कि दायरे वेब config में निर्दिष्ट किया जा रहा है, बल्कि कोड में कहीं चाहते हैं। मैंने दावे प्रमाणीकरण प्रबंधक को ओवरराइड करने और Federated प्रमाणीकरण से संबंधित कोड को भागों पर टिप्पणी करने का प्रयास किया है। मेरा ओवरराइड प्रमाणीकरण कोड हिट है, लेकिन इसमें कोई दावा नहीं है। मुझे लगता है कि ऐसा इसलिए है क्योंकि संघीय प्रमाणीकरण एक मध्यस्थ है जो सामान्य रूप से ओवरराइड दावों प्रमाणीकरण प्रबंधक को प्राप्त करने से पहले अपना स्वयं का प्रमाणीकरण करता है। क्या संघीय प्रमाणीकरण हिस्से को समान तरीके से ओवरराइड करने का कोई तरीका है? या क्या जानकारी ओवरराइड प्रमाणीकरण विधि में पारित की गई है जिसका उपयोग मैं अपना खुद का प्रमाणीकरण करने के लिए कर सकता हूं?

उत्तर

9

वेब config से उस xml लाइन निकालने के लिए, मैं बहुत की तरह अपने ही WSFederationAuthenticationModule वर्ष एक अधिभावी, बनाया:

public class CustomWSFederationAuthenticationModule : WSFederationAuthenticationModule 
{ 
    protected override void InitializePropertiesFromConfiguration(string serviceName) 
    { 
     this.Realm = "http://localhost:81/"; 
     this.Issuer = "https://acsnamespace.accesscontrol.windows.net/v2/wsfederation"; 
     this.RequireHttps = false; 
     this.PassiveRedirectEnabled = true; 
    } 
} 

और web.config का महत्वपूर्ण हिस्सा:

<modules runAllManagedModulesForAllRequests="true"> 
    <add name="WSFederationAuthenticationModule" type="CustomModuleLocation.CustomWSFederationAuthenticationModule, CustomModuleLocation" preCondition="managedHandler"/> 
    <add name="SessionAuthenticationModule" type="Microsoft.IdentityModel.Web.SessionAuthenticationModule, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler" /> 
</modules> 

भी एक्सएमएल के federatedAuthentication अनुभाग निकाल entirel है y।

+1

मेरी दुनिया में एक आकर्षण की तरह काम किया। धन्यवाद! –

1

हां, FedUtil यह करता है। यह एक उपयोगिता है जो विंडोज आइडेंटिटी फाउंडेशन (डब्ल्यूआईएफ) एसडीके के साथ आता है और आप इसे विजुअल स्टूडियो से बुला सकते हैं।

http://msdn.microsoft.com/en-us/library/ee517285.aspx

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=4451

संपादित करें: मैं आपके सवाल का गलत समझा हो सकता है। FedUtil एक उपयोगिता है जो आपके लिए आपके web.config को कॉन्फ़िगर करती है। यदि इसके बजाय आप अपने आवेदन को कोड में कॉन्फ़िगर करना चाहते हैं, तो यह भी संभव है। MSDN पर WIF प्रलेखन का प्रदर्शन करना चाहिए ऐसा करने के तरीके:

http://msdn.microsoft.com/en-us/library/ee766446.aspx

+0

दूसरी बात यह है कि मैं जो खोज रहा था वह उतना ही अधिक है। मुझे यह पृष्ठ कस्टम टोकन हैंडलर पर मिला: http://msdn.microsoft.com/en-us/library/ee517261.aspx बहुत उपयोगी होने के लिए। –