2010-01-07 11 views
5

मेरे पास एक वेबसाइट है जिसमें एएसपीनेट 2.0 फॉर्म प्रमाणीकरण के साथ कॉन्फ़िगर किया गया है। फ़ॉर्म प्रमाणीकरण के माध्यम से उपयोगकर्ता लॉग इन करने से पहले क्या वे जिस मशीन का उपयोग कर रहे हैं उस पर विंडोज लॉगिन नाम/उपयोगकर्ता खाता नाम पुनर्प्राप्त करना संभव है?क्या एएसपीनेट फॉर्म प्रमाणीकरण चलाने वाली साइट के साथ विंडोज लॉगऑन नाम प्राप्त करना संभव है?

बहुत धन्यवाद

उत्तर

0

नहीं इससे पहले कि कोई (सर्वर से नहीं)।

आपके द्वारा उपयोग किए जाने वाले औथ के प्रकार के आधार पर, और जिस तरह से साइट कॉन्फ़िगर की गई है, आप उन्हें अपने विंडोज़ विवरणों के साथ लॉग इन कर सकते हैं।

1

दुर्भाग्य से नहीं - यदि उपयोगकर्ता लॉग ऑन नहीं किया गया है, तो वे गुमनाम रूप से ब्राउज़ कर रहे हैं, और इसलिए सर्वर से अज्ञात हैं। उन्हें पहचानने का कोई तरीका नहीं है।

एक बार लॉग ऑन हो जाने पर, यदि आप प्रतिरूपण का उपयोग कर रहे हैं WindowsIdentity.GetCurrent().Name। हालांकि, फॉर्म प्रमाणीकरण के लिए ब्राउज़र को अपने विंडोज क्रेडेंशियल्स के लिए पूछने का कोई सीधा तरीका नहीं है क्योंकि वे विंडोज़ भी नहीं चल रहे हैं!

+0

बहुत धन्यवाद। असल में इससे कोई फर्क नहीं पड़ता कि यह लॉगिन से पहले या बाद में है, मुझे सिर्फ ग्राहक नाम के उपयोगकर्ता को जानना होगा। फॉर्म लॉगिन के बाद WindowsIdentity.GetCurrent()। नाम एनटी प्राधिकरण/नेटवर्क सेवा देता है। इसलिए मुझे लगता है कि यह किसी प्रकार के ActiveX नियंत्रण के बिना संभव नहीं है। सहायता के लिए धन्यवाद। – Shigg

+0

दरअसल, मैंने (गलत तरीके से) माना कि आप प्रतिरूपण का उपयोग कर रहे थे - मैंने अपना जवाब अपडेट कर दिया है। –

+0

शिग: दरअसल, यह संभव है, यदि आपकी साइट विश्वसनीय क्षेत्र में है और विंडोज़ ऑथ का उपयोग कर रही है। –

1

यह तभी संभव है यदि आप अपने वेब अनुप्रयोग में Windows प्रमाणीकरण उपयोग कर रहे थे और उसके बाद ही यदि उपयोगकर्ता में लॉग इन किया था होगा।
प्रकार की जानकारी आप के बाद काफी ठीक ही वेब अनुरोध के भाग के रूप में नहीं भेज दिया जाता है कर रहे हैं () और इसलिए वेब सर्वर के लिए अज्ञात है।

4

यह निश्चित रूप से संभव है - आपके सिस्टम में एक और वेब एप्लिकेशन जोड़कर। यहां लगभग मोटे तौर पर मैंने यह कैसे किया है:

आपका प्राथमिक वेब ऐप फॉर्म प्रमाणीकरण का उपयोग करता है। फॉर्म लॉगिन पेज पर, कोई भी उपयोगकर्ता जो स्थानीय लैन (आईपी एड्रेस चेक) पर होने के लिए निर्धारित है, उन्हें विंडोज प्रमाणीकरण का उपयोग करने वाले दूसरे ऐप पर रीडायरेक्ट करें। इस दूसरे ऐप में, आप उपयोगकर्ता को निर्धारित कर सकते हैं (मान लें कि ब्राउजर को उस क्षेत्र में स्वचालित रूप से क्रेडेंशियल्स भेजने के लिए कॉन्फ़िगर किया गया है जिसमें आपका ऐप रहता है), फिर एक कुकी सेट करें जो आपका पहला ऐप पढ़ सके, और उपयोगकर्ता को मूल ऐप पर रीडायरेक्ट करें ।

यह काम करता है।

+0

आप क्रॉस-एप कुकी कैसे सेट करते हैं? – awe

+1

@awe एकल 'मशीनके' का उपयोग सिंगल सिग्नलऑन में करते हैं: http://stackoverflow.com/questions/4312020/single-sign-on-in-asp-net-cookie-name-machinekey-and-what-more –

0

Mixing Forms and Windows Security in ASP.NET on Microsoft's MSDN देखें।

@TheObjectGuy उत्तर के साथ मुख्य अंतर यह है कि 2 वेबसाइटों का उपयोग करने के बजाय, यह आईआईएस को "एकल" पृष्ठ (WinLogin.aspx) में एकीकृत विंडोज प्रमाणीकरण का उपयोग करने के लिए कॉन्फ़िगर करके एक ही वेबसाइट में करता है।

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