2012-02-15 14 views
6

के बीच काम नहीं कर रहा है IIS 6.0 के साथ Windows Server 2003 पर कई वेब अनुप्रयोग चल रहे हैं।फॉर्म आधारित प्रमाणीकरण .NET 2.0 और .Net 4.0 अनुप्रयोग

एप्लिकेशन Asp.net 2.0 के अंतर्गत चल रहे हैं।

हाल ही में मैंने एक एमवीसी 3 वेब एप्लिकेशन स्थापित किया है जो इसकी प्रकृति एएसपीनेट 4 आधारित है। फॉर्म टिकट को इस नए एप्लिकेशन में दोबारा नहीं बदला गया है।

मुझे लगता है कि इस लिंक का उपयोग कर बनाया गया है अलग asp.net संस्करणों में से machine.config फाइलों में ही machineKey सेटिंग है: http://aspnetresources.com/tools/machineKey

लॉगिन वेब अनुप्रयोग में विन्यास इस तरह है:

<authentication mode="Forms"> 
    <forms name=".WEBAUTH" 
     loginUrl="login.aspx" 
     protection="None" 
     slidingExpiration="true" 
     enableCrossAppRedirects="false"  
     timeout="43200"  
     path="/" /> 
    </authentication> 

और तदनुसार MVC अनुप्रयोग के विन्यास है:

<authentication mode="Forms"> 
    <forms name=".WEBAUTH" 
     loginUrl="http://path2theloginapp/login.aspx" 
     protection="None" 
     slidingExpiration="true" 
     enableCrossAppRedirects="false"  
     timeout="43200"  
     path="/" /> 
    </authentication> 

    <authorization> 
    <deny users="?" /> 
    <allow users="*" /> 
    </authorization> 

लॉगिन काम करता है, लेकिन MVC आवेदन हमेशा r लॉगिन पृष्ठ पर वापस भेजता है।

अब अगर मैं आईआईएस कॉन्फ़िगरेशन में लॉगिन वेब एप्लिकेशन के एएसपीनेट संस्करण को asp.net 4.0 में बदलता हूं, तो यह काम करता है। लेकिन फिर एएसपीनेट 2 पर चल रहे सभी अन्य एप्लिकेशन अब और काम नहीं करते हैं।

क्या किसी ने भी इसी तरह की स्थिति में फॉर्मेटेड प्रमाणीकरण हल किया है?

उत्तर

5

मैं लंबा रास्ता तय करना था और एक खोला माइक्रोसॉफ्ट के साथ समर्थन मामले।

जैसा सामने आया, माइक्रोसॉफ्ट सुरक्षा बुलेटिन MS11-100 से प्रासंगिक सुरक्षा अद्यतन लापता गया:

http://technet.microsoft.com/en-us/security/bulletin/ms11-100
अपना ऑपरेटिंग सिस्टम चुनें और .NET 2.0 और 4.0 के लिए अद्यतन स्थापित करें।

यह अद्यतन शामिल वेब अनुप्रयोगों के पुनर्गठन के बिना फॉर्म-आधारित प्रमाणीकरण तय किए गए हैं।

+0

आपको बहुत बहुत धन्यवाद! –

2

यह में से एक है breaking changes ASP.NET में 4.0:

डिफ़ॉल्ट हैशिंग एल्गोरिथ्म अब है HMACSHA256

ASP.NET दोनों एन्क्रिप्शन और एल्गोरिदम hashing इस तरह के रूपों प्रमाणीकरण कुकी के रूप में सुरक्षित डेटा मदद करने के लिए उपयोग करता है और राज्य देखें। डिफ़ॉल्ट रूप से, एएसपी.नेट 4 अब कुकीज़ पर हैश ऑपरेशंस के लिए HMACSHA256 एल्गोरिदम का उपयोग करता है और राज्य को देखता है। एएसपी.नेट के पहले संस्करणों ने पुराने एचएमएसीएसएचए 1 एल्गोरिदम का उपयोग किया था।

यदि आप मिश्रित एएसपी.NET 2.0/एएसपी.नेट 4 वातावरण चलाते हैं तो आपके अनुप्रयोग प्रभावित हो सकते हैं, जहां फॉर्म प्रमाणीकरण कुकीज़ जैसे डेटा को .NET Framework संस्करणों में काम करना चाहिए। पुराने HMACSHA1 एल्गोरिथ्म का उपयोग करने के ASP.NET 4 वेब अनुप्रयोग कॉन्फ़िगर करने के लिए Web.config फ़ाइल में निम्नलिखित सेटिंग जोड़ें:

<machineKey validation="SHA1" />

+0

प्रमाणीकरण सेट है जैसा कि आपने machine.config में अनुशंसित किया है।क्या यह काम कर सकता है, अगर मैंने वेब एप्लिकेशन और एप्लिकेशन पूल को एएसपीनेट 2.0 मोड के तहत चलाने दिया है? – ms007

+0

@ एमएस 007, नहीं, आपके पास सीएलआर 2.0 के तहत एएसपी.नेट एमवीसी 3 एप्लिकेशन नहीं चल सकता है। इसके लिए .NET 4.0 की आवश्यकता है। दूसरी तरफ आप अपने विरासत एप्लिकेशन को .NET 4.0 के तहत चला सकते हैं। –