2009-12-24 16 views
6

कार्यालय में मेरा पर्यवेक्षक मुझे बताता है कि उसने माइक्रोसॉफ्ट "जिनेवा" (अब विंडोज आइडेंटिटी फाउंडेशन) के प्री-रिलीज संस्करण के साथ एक प्रदर्शन देखा जहां एक डेवलपर ने किया निम्नलिखित:किसी एएसपीनेट एप्लिकेशन में किसी को लॉग इन करने के लिए विंडोज पहचान फाउंडेशन का उपयोग

  1. उन्होंने किसी प्रकार का एएसपीनेट वेब एप्लिकेशन स्थापित किया जहां उपयोगकर्ता एक अनुकूलित लॉग-ऑन सिस्टम का उपयोग करके लॉग इन कर सकता था। दृश्यों के पीछे, वेब एप्लिकेशन उपयोगकर्ता को एक सक्रिय निर्देशिका में उपयोगकर्ता के रूप में लॉग करता है। में

  2. उपयोगकर्ता के लॉग।

  3. एक बार उपयोगकर्ता के प्रवेश, ASP.net वेब आवेदन धागा के रूप में उपयोगकर्ता के सत्र की अवधि के लिए उपयोगकर्ता के प्रवेश और नेटवर्क पर संसाधनों का उपयोग कर सकते हैं चलाता है (जैसे तालिकाओं जिसका उपयोग पर एसक्यूएल क्वेरी चलाने के रूप में नियंत्रित किया जाता है सक्रिय निर्देशिका)

कदम 2) और 3) वास्तव में "एकीकृत विंडोज प्रमाणीकरण" की "निर्देशिका सुरक्षा" टैब में स्थापित करने का उपयोग कर के रूप में ही कर रहे हैं आईआईएस में वेब साइट सेटिंग्स। चरण 1) अलग है क्योंकि हम केर्बेरोस प्रमाणीकरण के विपरीत कस्टम लॉग-ऑन सिस्टम का उपयोग कर रहे हैं।

हम अपने अनुप्रयोगों में से एक को 1), 2), और 3 में वर्णित अनुसार संचालित करने के लिए सेट अप करना चाहते हैं। हालांकि, विंडोज़ पहचान फाउंडेशन के बारे में मैंने जो दस्तावेज देखा है, वह कार्डस्पेस और संघीय सुरक्षा के बारे में है। हमारे पास इन तकनीकों में से किसी एक का उपयोग करने में शून्य रुचि है।

हम सिर्फ दृश्यों के पीछे सक्रिय निर्देशिका खातों में उपयोगकर्ताओं को लॉग इन करने में सक्षम होना चाहते हैं।

हां, हमने ActiveDirectoryMembershipProvider को Forms Authentication के साथ आजमाया है, लेकिन नेटवर्क पर संसाधनों तक पहुंचने के लिए यह पूरी तरह से क्लज है जो प्रत्येक पृष्ठ पर प्रतिरूपण की आवश्यकता है!

7 जनवरी, 2010 को अपडेट करें। ठीक है, मैं थोड़ी देर के लिए इस पर काम कर रहा हूं, और जो कुछ भी मैं आने में कामयाब रहा हूं उससे कम हो जाता है जो मैं प्राप्त करना चाहता हूं। शायद मैं चाहता हूं कि कार्यक्षमता WIF के रिलीज़ संस्करण में नहीं है।

यहां मैं कहां हूं। मुझे एमएसडीएन पर कुछ दस्तावेज मिल गए हैं जो इंगित करता है कि एएसपीनेट में तीन अलग-अलग पहचानें हैं: HttpContext.Current.User द्वारा निर्दिष्ट पहचान, Thread.CurrentPrincipal द्वारा निर्दिष्ट पहचान, और अंत में WindowsIdentity.GetCurrent द्वारा निर्दिष्ट पहचान। link

एक उदाहरण में जहां मैं प्रक्रिया का उपयोग करना चाहता हूं, मैं डिजाइन करने के लिए देख रहा हूं, मैं लॉग इन उपयोगकर्ता के रूप में एक SQL क्वेरी करना चाहता हूं। मेरे डीबगर में, मैं देखता हूं कि मैं आसानी से लॉग इन उपयोगकर्ता को HttpContext और थ्रेड उपयोगकर्ताओं को सेट करता हूं। हालांकि, जब मैं विंडोज प्रमाणीकरण का उपयोग कर SQL सर्वर से कनेक्ट करता हूं, तो यह हमेशा हमेशा WindowsIdentity.GetCurrent उपयोगकर्ता के रूप में हमेशा कनेक्ट होता है और वह उपयोगकर्ता हमेशा हमेशा एएसपीनेट प्रक्रिया की पहचान हमेशा तक रहता है जब तक कि मैं प्रतिरूपण के साथ विंडोज प्रमाणीकरण का उपयोग नहीं कर रहा हूं। मैं बिल्कुल अपने एप्लिकेशन के साथ विंडोज प्रमाणीकरण का उपयोग नहीं कर सकता क्योंकि मेरे उपयोगकर्ताओं को एक जादू बांसुरी गीत खेलकर लॉग इन करना होगा और विंडोज प्रमाणीकरण के पास जादू बांसुरी गीतों के साथ लॉग इन करने का कोई समर्थन नहीं है।

स्पष्टीकरण के लिए, WindowsIdentity प्राप्त करने में कोई समस्या नहीं है जो लॉग इन उपयोगकर्ता (जो एक जादू बांसुरी गीत के साथ लॉग इन है) का प्रतिनिधित्व करता है। समस्या यह है कि मैं अपने उपयोगकर्ता के लिए SQL क्वेरी करने के लिए उस WindowsIdentity का उपयोग नहीं कर सकता।

उत्तर

5

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

यहां तक ​​कि जब यह प्रतिनिधिमंडल आप हमेशा आप ई पहचान का उपयोग करना चाहते हैं, तो प्रतिनिधि करने के लिए IIS धारण कर रहा है जा रहे हैं की वजह से नक्शा है - कि अभी यह कैसे काम करता है, जब तक आप सेटअप Kerberos delegation आईआईएस

के लिए
+0

मेरा पर्यवेक्षक बहुत विशिष्ट है कि वह प्रतिरूपण का उपयोग नहीं करना चाहता है। इसके अलावा, अंत उपयोगकर्ता एक जादू बांसुरी पर एक गाना बजाने में लॉग इन करेगा। यदि गीत सही है, तो उपयोगकर्ता एडी खाते का उपयोग करके प्रोग्रामेटिक रूप से लॉग इन होता है। मेरे पास इस तथ्य के चारों ओर बिल्कुल कोई रास्ता नहीं है कि उपयोगकर्ता जादू बांसुरी पर एक गीत चलाकर लॉग इन करता है। प्रोग्राम की व्यवहार करने के लिए मुझे कुछ तरीका चाहिए जैसे कि वे विंडोज़ प्रमाणीकरण के साथ लॉग इन हैं जब वे जादू बांसुरी गीत सही ढंग से बजाते हैं। –

+0

नहीं, आप असंभव पूछ रहे हैं। यदि आपका पर्यवेक्षक कहता है कि आप इसका उपयोग नहीं कर सकते हैं, तो Windows प्रमाणीकरण प्रतिरूपण का उपयोग करता है, तो आप Windows प्रमाणीकरण की नकल नहीं कर सकते हैं। – blowdart

+0

धन्यवाद, blowdart। मुझे खुद को सही करना होगा। मेरा मतलब यह था कि जब आप आईआईएस के साथ विंडोज प्रमाणीकरण का उपयोग करते हैं, तो वेब सर्वर पारदर्शी रूप से लॉग इन उपयोगकर्ता का प्रतिरूपण करता है। प्रपत्र प्रमाणीकरण के साथ, मुझे प्रोग्रामिंग रूप से प्रतिरूपण करना है, जिसे हम टालना चाहते हैं; AdMembershipProvider मुझे इसके साथ मदद नहीं करता है, ऐसा लगता है। मैं एक फॉर्म प्रमाणीकरण कुकी के साथ प्रतिरूपण नहीं कर सकता। मेरा सुपर। कहता है कि उन्होंने एक डेमो देखा जहां जिनेवा किसी भी तरह से इसे बनाने के लिए इस्तेमाल किया गया था ताकि उपयोगकर्ता अपने एडी खाते से स्वचालित रूप से लॉग इन हो, भले ही उपयोगकर्ता अपने जादू बांसुरी गीत के साथ लॉग इन करे। –

1

आप ASP.net में पहचान प्रतिरूपण का उपयोग करके इसे प्राप्त कर सकते हैं। इसके अलावा आपको अपने वेब ऐप के लिए विंडोज एकीकृत प्रमाणीकरण को सक्षम करने की आवश्यकता है। यह उद्देश्य को हल करेगा। यदि लॉग इन उपयोगकर्ता के पास संसाधनों तक पहुंचने के लिए आवश्यक अधिकार नहीं हैं तो आपको सुरक्षा अपवाद मिलेगा जिन्हें आपको संभालना होगा।

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