2017-08-25 15 views
13

मैं एक AuthorizationProvider दोनों बेनामी और Windows और मैं का उपयोग करने की आवश्यकता है का उपयोग कर काम करने के लिए खिड़कियों challege तो पाने के लिए नहीं कर पा रहे है:सेना विंडोज challege

if (principal == null || principal.Identity == null || string.IsNullOrWhiteSpace(principal.Identity.Name)) 
      { 
       context.OwinContext.Authentication.Challenge(); 
       return Task.FromResult(0); 
      } 

क्या कोई अन्य कॉन्फ़िगरेशन मान मैं निर्धारित करने की आवश्यकता कर रहे हैं इस लाइन के काम करने के लिए? : context.OwinContext.Authentication.Challenge();

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

उत्तर

4

संक्षेप में, आपको अपने वेब होस्ट में विंडोज प्रमाणीकरण सक्षम करना चाहिए। आपके द्वारा उपयोग किए जा रहे वेब होस्ट के आधार पर अलग-अलग सेटिंग्स हैं।

वेब होस्ट को कॉन्फ़िगर करने के बाद, आपका नियंत्रक कोड काम करना शुरू कर देता है।

Owin आत्म मेजबान

कॉन्फ़िगर HttpListener Owin Startup में दोनों प्रमाणीकरण मोड स्वीकार करने के लिए वर्ग:

class Startup 
{ 
    public void Configuration(IAppBuilder app) 
    { 
     var listener = (HttpListener)app.Properties["System.Net.HttpListener"]; 

     listener.AuthenticationSchemes = 
      AuthenticationSchemes.IntegratedWindowsAuthentication | 
      AuthenticationSchemes.Anonymous; 

     // Other initialization 
    } 
} 

IIS

आप आईआईएस पर अपने आवेदन की मेजबानी कर रहे हैं, तो आप अपने आवेदन के लिए आईआईएस वेब साइट सेटिंग्स में विंडोज प्रमाणीकरण मोड सक्षम करना चाहिए:

enter image description here enter image description here

आप प्रमाणीकरण आइकॉन या Windows प्रमाणीकरण मोड दिखाई नहीं देता है, तो निम्न स्थापित विंडोज विशेषताएं:

enter image description here

दृश्य स्टूडियो वेब डीबगिंग (आईआईएस एक्सप्रेस)

अंत में, विजुअल स्टूडियो से वेब डिबगिंग की सुविधा के लिए, आप विंडोज़ ऑटो को सक्षम कर सकते हैं आपके प्रोजेक्ट गुणों में हेनटिकेशन। ओपन समाधान एक्सप्लोरर और अपनी परियोजना का चयन करें:

enter image description here

फिर गुण टैब खोलें और दोनों अनाम और Windows प्रमाणीकरण सेट:

enter image description here

अधिक जानकारी के लिए आप this article की जाँच कर सकते हैं।

+0

मेरे पास आईआईएस में विंडोज प्रमाणीकरण सक्षम है लेकिन एक बार जब मैं अनाम सक्षम करता हूं तो मैं विंडोज उपयोगकर्ता खाता प्राप्त कर सकता हूं, केवल अनाम सक्षम के साथ। यह लाइन विंडोज क्रेडिट संदर्भ के लिए संकेत देने के लिए माना जाता है। OwinContext.Authentication.Challenge(); लेकिन यह काम नहीं करता है इसलिए सुनिश्चित नहीं है कि अन्य सेटिंग्स हैं जिन्हें मुझे सेट करने की आवश्यकता है। – Fab

+0

@Fab क्लाइंट साइड पर क्या है? क्या यह 'HttpClient' है? –

+0

@Fab btw प्रमाणीकरण मोड को स्पष्ट रूप से निर्दिष्ट करने का प्रयास करें: 'context.OwinContext.Authentication.Challenge (" Ntlm ")'। –

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