इस तरह:
SECURITY_DESCRIPTOR SD;
InitializeSecurityDescriptor(&SD, SECURITY_DESCRIPTOR_REVISION);
SetSecurityDescriptorDacl(&SD, TRUE, NULL, FALSE);
मैं संक्षिप्तता की खातिर जांच त्रुटि छोड़े गए। आप ऐसा नहीं करेंगे।
फिर जब आप फोन CreateNamedPipe
आप सुरक्षा इस तरह रिकॉर्ड विशेषताओं का सेट कर सकते हैं:
SA.nLength = sizeof(SA);
SA.lpSecurityDescriptor = &SD;
SA.bInheritHandle = TRUE;
SetSecurityDescriptorDacl
राज्यों के लिए प्रलेखन:
pDacl पैरामीटर DACL को इंगित नहीं करता है और bDaclPresent ध्वज सत्य है, एक पूर्ण डीएसीएल निर्दिष्ट है। सभी पहुंच की अनुमति है। आपको ऑब्जेक्ट के साथ एक नल डीएसीएल का उपयोग नहीं करना चाहिए क्योंकि कोई भी उपयोगकर्ता डीएसीएल और सुरक्षा डिस्क्रिप्टर के मालिक को बदल सकता है। यह वस्तु के उपयोग में हस्तक्षेप करेगा।
तो, उपर्युक्त यह कैसे करना है, लेकिन दस्तावेज़ीकरण तनाव देता है कि आपको ऐसा नहीं करना चाहिए।
स्रोत
2013-01-24 13:34:00
हम्म के लिए उपयोग के साथ एक मानचित्रण बनाता है, स्वामित्व बदलने के बारे में हिस्सा एक आश्चर्य था। लेकिन मेरे मामले में यह कोई समस्या नहीं है, मुझे बस उस उपयोगकर्ता के बावजूद अपने exe से कनेक्ट करने में सक्षम होने की आवश्यकता है, जो पाइप से कनेक्ट हो और उन्हें मेरी विंडोज़ सेवा या कुछ भी हैक करने नहीं देगा। लेकिन यह अभी भी दिलचस्प है - कनेक्ट करने के लिए उन्हें अनुमति देने के बिना, कनेक्ट करने के लिए सभी को पहुंच प्रदान करना संभव है? – sashoalm
हां, तो आपको एक असली डीएसीएल का उपयोग करने की आवश्यकता होगी। आपके पिछले प्रश्न पर मेरी टिप्पणी में कोड बताता है कि मैं यह कैसे करता हूं। –