2010-05-26 8 views
15

एमएसडीएन फाइलसिस्टम वाटर वर्ग पृष्ठ पर, इसमें निम्न श्रेणी विशेषता के साथ एक उदाहरण शामिल है:MSDN FileSystemWatcher क्लास उदाहरण में PermissionSet विशेषता का उद्देश्य क्या है?

 [PermissionSet(SecurityAction.Demand, Name="FullTrust")] 

इसका उद्देश्य क्या है? इसे कब शामिल किया जाना चाहिए या शामिल नहीं किया जाना चाहिए?

फ़ाइलसिस्टम वाटर वर्ग सहायता पृष्ठ यहां है: http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx

उत्तर

15

FileSystemWatcher वर्ग अप्रतिबंधित कैस अनुमतियों के लिए एक लिंक मांग है। इसका अर्थ यह है कि यह सत्यापित करेगा कि इसका सीधा कॉलर (यानी आपका कोड अगर आप सीधे कक्षा का उपभोग कर रहे हैं) में अप्रतिबंधित अनुमतियां हैं।

दुर्भाग्य से, एक लिंक मांगों का उपयोग अप्रत्यक्ष कॉलर्स की अनुमति के बाद से संभावित सुरक्षा छेद खोलता है (यानी: कोड जो आपके कोड को कॉल करता है) एक लिंक मांग द्वारा सत्यापित नहीं किया जाता है। इसका मतलब यह है कि प्रतिबंधित अनुमतियों वाला एक अप्रत्यक्ष कॉलर आपके अत्यधिक भरोसेमंद कोड को अपनी ओर से कुछ घृणास्पद करने में सक्षम हो सकता है कि अन्यथा इसे पूरा करने की अनुमति नहीं थी।

इस प्रकार के हमले को रोकने के तरीकों में से एक है किसी भी कोड को एक ही अनुमति के लिए पूरी मांग लागू करना जो किसी प्रकार की मांग या सदस्य की मांग मांगता है। यह सुनिश्चित करेगा कि किसी भी अप्रत्यक्ष कॉलर्स को एक ही अनुमति मांग के अधीन किया जाएगा, जिससे यह सुनिश्चित किया जा सके कि वे आपके कोड के माध्यम से कुछ भी नहीं कर सकते हैं कि वे स्वयं पर नहीं कर पाएंगे। FileSystemWatcher के लिए एमएसडीएन नमूना कोड में दिखाया जा रहा है कि इस प्रकार की पूरी तरह से मांग का आवेदन है।

+0

मुझे नहीं लगता कि मैं इसे अभी तक काफी समझता हूं। उदाहरण 'अनुमति सेट ...' लाइन के बिना ठीक चलाता है। यह कोड को इसमें रखने में कैसे मदद करता है? 'फुल ट्रस्ट' का क्या अर्थ है? मशीन पर व्यवस्थापक निजीकरण या फ़ाइल/निर्देशिका में पूरी तरह से पूर्ण पहुंच? – Jeff

+4

विशेषता आपके कोड को चलाने में मदद नहीं करती है। इसके बजाए, यह इसे चलाने से रोकने में मदद करता है जब इसे नहीं करना चाहिए। "फुलट्रस्ट" अप्रतिबंधित कोड एक्सेस सुरक्षा अनुमतियों को संदर्भित करता है। इसका उपयोगकर्ता के खाते में दी गई अनुमतियों के साथ कुछ लेना देना नहीं है। कोड एक्सेस सिक्योरिटी एक अतिरिक्त सुरक्षा परत है जो .NET द्वारा प्रदान की जाती है जो किसी को कोड चलाने के लिए अनुमतियों को नियंत्रित करने की अनुमति देती है। एक परिचय के लिए, http://msdn.microsoft.com/en-us/library/930b76w0(VS.71).aspx देखें। –

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