2009-10-15 17 views
29

मैं एक Silverlight आवेदन (MVC का प्रयोग करके) और जब मैं दृश्य स्टूडियो में निर्माण कर रहा हूँ, विजुअल स्टूडियो विकास केंद्र का उपयोग कर, वहाँ कोई समस्या नहीं है, HttpContext.Current.User.Identity.Name एक मूल्यHttpContext.Current.User.Identity.Name खाली

है है

लेकिन जब मैं आईआईएस 7.5 (i विंडोज 7 का उपयोग कर रहा है) के साथ एक ही परियोजना का उपयोग कर रहा हूँ, HttpContext.Current.User.Identity.Name रहता खाली

जो कोई मदद कर सकते हैं? या जानता है कि मैं विजुअल स्टूडियो डेवलपमेंट सेंटर से सेटिंग्स कहां पा सकता हूं, इसलिए मैं जांच सकता हूं कि आईआईएस में क्या गलत है?

+2

चुनें अपनी प्रमाणीकरण सेटिंग्स की जांच करें। HttpContext.Current.User एक आईप्रिनिपियर है जो वर्तमान उपयोगकर्ता को लपेटता है - चाहे वह एक विंडोज उपयोगकर्ता हो, .NET फॉर्म सुरक्षा प्रिंसिपल, पासपोर्ट प्रिंसिपल, या अपने स्वयं के प्रोजेक्ट से कस्टम उपयोगकर्ता प्रिंसिपल हो। मुझे संदेह है कि आईआईएस 7 अज्ञात प्रमाणीकरण की अनुमति दे रहा है, जबकि किसी भी कारण से विजुअल स्टूडियो एक प्रमाणित उपयोगकर्ता के रूप में चल रहा है। विजुअल स्टूडियो में वापस लौटने वाला नाम क्या है, और आपकी आईआईएस साइट पर प्रमाणीकरण सेटिंग्स क्या हैं? –

+0

विजुअल स्टूडियो में नाम "lapjordy \\ Jordy" (मेरी विंडोज़ लॉगिन नाम) आईआईएस में नाम "" (खाली स्ट्रिंग) मैंने आईआईएस में अज्ञात प्रमाणीकरण को बदल दिया और विंडोज प्रमाणीकरण चालू कर दिया, लेकिन फिर ब्राउज़र मुझे मुझसे अपने विंडोज प्रमाण-पत्र देने के लिए कहता है .. केवल एक चीज जो मैं चाहता हूं वह यह है कि एप्लिकेशन (चांदी की रोशनी) मुझे मेरे वर्तमान विंडोज उपयोगकर्ता का नाम देता है (ब्राउज़र के बिना मेरा उपयोगकर्ता नाम पूछ रहा है -> छवि देखें) – Jordy

+0

http://img98.imageshack.us/content.php?page=done&l=img98/5376/printscreen1.png&via=mupload – Jordy

उत्तर

1

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

अन्यथा आपको इसे प्रमाण-पत्र प्रदान करना होगा, लेकिन यदि यह एक ही डोमेन पर नहीं है, तो यह आपको प्रमाणित करने में सक्षम नहीं होगा।

+0

आप उसी डोमेन में आईआईएस सर्वर और ब्राउज़र (या एप्लिकेशन?) कैसे डालते हैं? और क्या मुझे उन समूह नीतियों को सेट करने की आवश्यकता है? आपके पास कोई उदाहरण है? आशा है कि आप मदद कर सकते हैं! :) – Jordy

38

मैंने पिछले कुछ दिनों में इस समस्या से जूझ रहे थे।

मैं पढ़ स्कॉट गुथरी के ब्लॉग पोस्ट Recipe: Enabling Windows Authentication within an Intranet ASP.NET Web application

मेरे लिए समस्या यह है कि हालांकि मैं था विंडोज प्रमाणीकरण IIS में सक्षम है और मैं web.config की <system.web> खंड में <authentication mode="Windows" /> थी, मैं गुमनाम पहुंच रोक नहीं किया गया था सुझाव देते हैं। यह आखिरी हिस्सा कुंजी था। आपको यह सुनिश्चित करने के लिए अज्ञात पहुंच को रोकने की आवश्यकता है कि ब्राउज़र प्रमाण-पत्र भेजता है।

आप नियंत्रण कक्ष में आईआईएस कॉन्फ़िगर कर सकते हैं या तो इतना है कि आपकी साइट (या मशीन) Windows प्रमाणीकरण का उपयोग करता है और अनाम पहुँच से इनकार करते हैं या आप system.web अनुभाग में अपने web.config के लिए निम्न जोड़ सकते हैं:

<authentication mode="Windows" /> 

<authorization> 
    <deny users="?"/> 
</authorization> 
+1

मेरे लिए काम किया हालांकि मेरी पहचान नाम केवल दूसरे से दूसरे तक, केवल खाली था। कोई विचार नहीं, अगर कोई समझा सकता है तो दिलचस्पी होगी? – Ronnie

4

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

भले ही आपने विंडोज प्रमाणीकरण सक्षम किया है और IIS पर बेनामी प्रमाणीकरण अक्षम किया है, इससे आपके विजुअल स्टूडियो सिमुलेशन में कोई फर्क नहीं पड़ता है।

4

मुझे हाल ही में यह समस्या भी थी। विंडोज प्रमाणीकरण का उपयोग करते हुए IISExpress के साथ, विजुअल स्टूडियो से चल रहे पुराने वेब फॉर्म ऐप को प्राप्त करने का प्रयास कर रहे नए क्लाइंट के साथ काम करना। मेरे लिए, web.config सही ढंग से

कॉन्फ़िगर किया गया था हालांकि, IISExpress.config सेटिंग्स फ़ाइल था:

<windowsAuthentication enabled="false"> 

उपयोगकर्ता खाता डेवलपर में बहुत नया है, इसलिए unlikley यह संपादित किया गया था था लॉग इन किया गया था । सरल फिक्स यह निकला, इसे सक्षम = सही में बदलें और यह सब तब तक चल रहा था जब इसे करना चाहिए।

+1

यह ** ** उत्तर है जिसे मैं ढूंढ रहा था। मेरी IISExpress सेटिंग, हालांकि, 'applicationhost.config' फ़ाइल में संग्रहीत है। – Nova

3

इसके अलावा "जवाब मार्च 28 '11 12 पर: 27Bryan Bedard" करने के लिए

मामले में है कि समाधान काम नहीं करता है, तो आप iss प्रबंधक में Windows प्रमाणीकरण सक्षम करने के लिए किया है। यह कैसे करें:

1. रन से आईआईएस प्रबंधक शुरू करने के लिए संवाद बॉक्स: प्रारंभ मेनू पर, सभी प्रोग्राम्स पर क्लिक करें, सहायक उपकरणक्लिक करें, और उसके बाद चलाएँक्लिक करें। ओपन बॉक्स में, inetmgr टाइप करें और फिर ठीक क्लिक करें।

2. कनेक्शन फलक में, सर्वर का नाम विस्तृत करें, साइट्स का विस्तार करें, और पदानुक्रम फलक में स्तर पर जाएं जिसे आप कॉन्फ़िगर करना चाहते हैं, और फिर वेबसाइट या वेब एप्लिकेशन पर क्लिक करें। 3. होम फलक में आईआईएस अनुभाग तक स्क्रॉल करें, और उसके बाद प्रमाणीकरण को डबल-क्लिक करें।

4. प्रमाणीकरण फलक में, अनाम प्रमाणीकरण का चयन करें, और फिर अक्षम करें क्लिक करें। enter image description here

  1. प्रमाणीकरण फलक में, Windows प्रमाणीकरण का चयन करें, और उसके बाद सक्षम करेंक्लिक करें।

Reference

0

@PaulTheCyclist कहते हैं, तो IISExpress गुमनाम प्रमाणीकरण का उपयोग डिफ़ॉल्ट रूप से सक्षम, खिड़कियां प्रमाणीकरण अक्षम है।

यह जिसे मैं निश्चित रूप से प्रॉपर्टीपेज (राइट-क्लिक -> गुण नहीं) कहलाता हूं, में बदला जा सकता है। वेब प्रोजेक्ट

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