2010-05-18 12 views

उत्तर

9

में एक वेब अनुप्रयोग परियोजना चल रही प्रक्रिया को उपयोगकर्ता के लिए के लिए रूट फ़ोल्डर का एक सबफ़ोल्डर में स्थित एक फ़ाइल को नष्ट करने के लिए डिज़ाइन क्लिक करता है मैं एक UnAthorizedAccessExeption हो रही है: Environment.UserName

व्यक्ति पेज का अनुरोध के लिए: Page.User.Identity

संपादित करें: नेटवर्क सेवा नेटवर्क (जैसे आईआईएस) की समस्त सामग्री की सेवा के लिए इस्तेमाल किया सामान्य खाता है। सभी built-in accounts देखें। आपको फ़ोल्डर में नेटवर्क सेवा पहुंच देना होगा (आपकी सभी अन्य वेबसाइटें जो इस खाते की पहुंच का उपयोग करती हैं) दे रही हैं या एक और खाता सेट अप करनी होंगी।

क्या आप आईआईएस 6 या 7 का उपयोग कर रहे हैं?

+0

नेल्सन, "... या नेटवर्क सेवा पहुँच दे" क्या मैं वास्तव में की तलाश कर रहा था। एविटस ने इसे करने का एक तरीका पेश किया, फिर भी मेरी दुकान प्रतिरूपण का उपयोग नहीं करती है। मैं पहले से ही विंडोज प्रमाणीकरण का उपयोग कर रहा था, और नेटवर्क सेवा संशोधित अधिकारों को काम कर रहा था। अगर मैं उत्पादन सर्वर पर काम नहीं करता तो मैं वापस आऊंगा। मेरी मदद करने के लिए आप सभी को धन्यवाद। एक उलझन में, मैं आप सभी को MAX अंक देना चाहता हूं। मुझे बताएं कि मैं MAX को हर एक उचित तरीके से क्या कर सकता हूं। – dannyrosalex

+1

@ बर्लियोज़: बस ध्यान दें कि एक उत्पादन वातावरण में आप इसे इस तरह से नहीं करना चाहेंगे। यदि आप फ़ोल्डर में नेटवर्क सेवा पहुंच देते हैं, तो नेटवर्क सेवा के रूप में चलने वाली अन्य सभी वेबसाइटों के पास भी पहुंच होगी। आमतौर पर आप केवल नेटवर्क सेवा का उपयोग करते हैं यदि डिफ़ॉल्ट अनुमतियां/सेटिंग्स ठीक हैं, लेकिन प्रत्येक वेबसाइट के लिए उपयोगकर्ता (यह एक स्थानीय कंप्यूटर उपयोगकर्ता हो सकता है) बनाएं जिसे आप कस्टमाइज़ करने जा रहे हैं। –

4

मुझे लगता है कि आप एएसपीएक्स पेज के निष्पादन के भीतर प्रक्रिया पहचान प्राप्त करना चाहते हैं। उस मामले में:

System.Security.Principal.WindowsIdentity.GetCurrent().Name; 
+0

हां, यह सही है, और लेबल में कोड की अपनी लाइन डालने पर, मुझे "DOMAINNAME \ USERNAME" प्रदर्शित करने के लिए निम्नलिखित मिला। मैं स्पष्ट रूप से विंडोज नेटवर्क पर विंडोज प्रमाणीकरण का उपयोग कर रहा हूँ। मेरा अगला प्रश्न, कृपया मुझे शिक्षित करें, "नेटवर्क सेवा" खाता क्या है? – dannyrosalex

+0

उपयोगकर्ता को प्राप्त करने के कम से कम तीन तरीके हैं: http://www.dotnetmonster.com/Uwe/Forum.aspx/vs-net-general/1854/Getting-user-name- पर्यावरण- उपयोगकर्ता नाम- सिस्टम- सिस्टम जानकारी –

+1

@ बर्लियोज़: http://msdn.microsoft.com/en-us/library/ms684272%28VS.85%29.aspx –

2

आपको क्या करने की जरूरत है के लिए जा रहे अपने web.config फ़ाइल को हटाने का अधिकार है कि में एक

<identity impersonate="true" username="x" password="x" />

टैग डाल दिया है।

+0

... या "नेटवर्क सेवा" पहुंच प्रदान करें, एप्लिकेशन पूल में उपयोगकर्ता/पासवर्ड बदलें, विंडोज प्रमाणीकरण का उपयोग करें ... –

+0

यदि मेरा समाधान सोर्ससेफ में है और मैं कैसिनी पर डीबग (एफ 5) करता हूं, तो फाइलों को हटा दिया जाएगा उप फ़ोल्डर, या एसएस उन्हें हटाए जाने से रोक देगा? – dannyrosalex

+0

डेब = डीबग? यदि आप विजुअल स्टूडियो के वेब सर्वर (कैसिनी) का उपयोग करके डिबगिंग कर रहे हैं, तो आप एप्लिकेशन पूल (आईआईएस) पहचान नहीं बदल सकते हैं। Avitus ने क्या काम करना चाहिए, अन्यथा आप उस फ़ोल्डर पर नेटवर्क सेवा खाता अनुमतियां दे सकते हैं, या एकीकृत (विंडोज) प्रमाणीकरण (इंट्रानेट परिदृश्यों में अधिकतर उपयोगी) का उपयोग कर सकते हैं –

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