2016-05-08 12 views
18

में चलते समय डेटा सुरक्षा के लिए मेमोरी रेपो में एस्पनेट कोर का उपयोग करते हुए मैं एक एस्पनेट एमवीसी कोर आरसी 1 वेबसाइट के साथ एक उत्पादन सर्वर (विंडोज सर्वर 2012) चला रहा हूं।आईआईएस

मैं लॉग में निम्न दिखाई दे रही है:

Neither user profile nor HKLM registry available. Using an ephemeral key repository. Protected data will be unavailable when application exits. 

DataProtection के लिए स्रोत कोड का निरीक्षण के बाद, मैं निम्न विधि कॉल करने के लिए समस्या पर नज़र रखी:

Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) 

यह शायद लौटा रहा है किसी कारण से सर्वर पर शून्य। मेरे पास कोई विशेष कस्टम कॉन्फ़िगरेशन नहीं है और मैंने docs पढ़ा है, इसलिए मैंने सोचा कि डिफ़ॉल्ट काम करेगा।

मुझे लगता है कि समस्या आईआईएस वेबसाइट के साथ एक निश्चित उपयोगकर्ता के संदर्भ में नहीं चल रही है, लेकिन मुझे नहीं पता कि इसे कैसे पुष्टि या ठीक किया जाए। मेरी वेबसाइट अपने पूल के साथ कॉन्फ़िगर किया गया है।

एक अलग रूप में के रूप में: कुंजी के भंडारण के लिए स्मृति भंडार में एक चलाने का परिणाम जब भी आवेदन बाहर निकलता है जो बहुत कष्टप्रद और नहीं है यहां तक ​​कि उत्पादन वातावरण में इस्तेमाल के इरादे उन्हें पुनरावृत्ति करने के लिए कारण बनता है।

+0

क्या आपकी एप्लिकेशन पहचान उपयोगकर्ता की प्रोफाइल लोड करने के लिए सेट है? – TGlatzer

+0

@TGlatzer मुझे लगता है कि यह समस्या है (कंटेनरों के बारे में कुछ के अलावा)। जब मैं सर्वर तक पहुंच प्राप्त करता हूं तो मैं इसके साथ गायब होने की कोशिश करूंगा। – mrahhal

उत्तर

11

उपयोगकर्ता प्रोफ़ाइल आईआईएस कॉन्फ़िगरेशन में लोड किया जाना चाहिए।

ओपन आईआईएस, एप्लिकेशन पूल पर उन्नत क्लिक करें, फिर उन्नत सेटिंग। और "उपयोगकर्ता प्रोफ़ाइल लोड करें" को सही पर सेट करें। अपने ऐप को पुनरारंभ करें और इसे पूरी तरह से काम करना चाहिए।

+0

मेरे आईआईएस पर यह पहले से ही सत्य पर सेट किया गया था जो मेरे लिए इस त्रुटि को ठीक नहीं करता है ... –

+0

लेकिन ... क्यों ??? यह अभी ही होना शुरू हो गया है? क्या कुछ बदल गया? मुझे समझ में नहीं आता – ppumkin

3

एएसपी.NET अनुप्रयोगों द्वारा उपयोग की जाने वाली डेटा प्रोटेक्शन कुंजियां अनुप्रयोगों के बाहर रजिस्ट्री हाइव्स में संग्रहीत होती हैं। ऐपपूल पहचान के रूप में अपना एप्लिकेशन चलाते समय आपको प्रत्येक एपपूल एएसपी.NET कोर एप्लिकेशन के साथ उपयोग करने के लिए रजिस्ट्री हाइव बनाना होगा।

स्टैंडअलोन आईआईएस इंस्टॉलेशन के लिए, आप Data Protection PowerShell scriptका उपयोग प्रत्येक एप्लिकेशन पूल एएसपी.NET कोर एप्लिकेशन के साथ उपयोग कर सकते हैं। रजिस्ट्री में कुंजी जारी रहेगी।

लॉग इन में स्पष्ट रूप से बताया गया है कि रजिस्ट्री हाइव के कारण डेटा सुरक्षा मौजूद नहीं है, कुंजी डिस्क पर नहीं रहेंगी। इसके बजाए, वे क्षणिक और केवल स्मृति में रहेंगे।

वेब फार्म परिदृश्य में, एक डेटा को अपनी डेटा सुरक्षा कुंजी अंगूठी को स्टोर करने के लिए यूएनसी पथ का उपयोग करने के लिए कॉन्फ़िगर किया जा सकता है। डिफ़ॉल्ट रूप से, डेटा सुरक्षा कुंजी एन्क्रिप्ट नहीं की जाती हैं। आप कुंजी अंगूठी को एन्क्रिप्ट करने के लिए प्रत्येक मशीन पर x509 प्रमाण पत्र तैनात कर सकते हैं।

अधिक जानकारी

+0

यह सही उत्तर है, मूल रूप से आपको आईआईएस को कहां रखना है कि कुंजी को स्टोर करना है ताकि यह सत्रों के बीच फिर से पहुंच सके। बस एक ही प्रश्न का उत्तर दिया https://stackoverflow.com/questions/46225867/is-it-possible-to-persist-cookies-between-visual-studio-debug-sessions/46657239#46657239 –

0

के लिए official ASP.NET Core docs देखें this from the DataProtection Git repository

संक्षेप में पर एक नजर डालें, वहाँ आईआईएस में एक बग कभी नहीं सुधारा जा सकता है कि कि DataProtection चाबी के लिए सही रजिस्ट्री सेटअप को रोकने के लिए है। मैन्युअल रूप से रजिस्ट्री को मैन्युअल रूप से सेटअप करने के लिए powershell script है ताकि यह AspNet Core के लिए काम करे। प्रत्येक एप्लिकेशन पूल के लिए स्क्रिप्ट चलाने के बाद आप एस्पनेट कोर अनुप्रयोगों के लिए उपयोग करते हैं, तो वे एप्लिकेशन इरादे के अनुसार काम करेंगे।

+0

मैं और क्या कर सकता हूं अगर मैं होस्टेड वातावरण पर हूं जहां पहुंच अधिकार बहुत सीमित हैं। मैं या तो पावरहेल स्क्रिप्ट नहीं चला सकता और न ही ऐप पूल सेटिंग्स बदल सकता हूं? – kliszaq

+0

आप एक कठिन परिस्थिति में हैं ... मुझे लगता है कि आपको यह जांचना चाहिए कि ऐसा करने के लिए किसी को ढूंढना संभव है या नहीं। आम तौर पर, आपको कुछ काग़ज़ के काम के साथ उचित होने पर सर्वर कॉन्फ़िगरेशन को बदलने के लिए किसी व्यक्ति/प्रक्रिया को ढूंढने में सक्षम होना चाहिए। सौभाग्य! – Yepeekai