2013-09-06 10 views
6

सिग्नल के साथ फॉर्म प्रमाणीकरण या विंडोज प्रमाणीकरण कैसे करें इस बारे में बहुत सारी जानकारी है। मुझे अपने स्वयं के प्रमाणीकरण डीबी का उपयोग करने में दिलचस्पी है। मैं एक .NET क्लाइंट का उपयोग करता हूं क्योंकि कनेक्टिंग एजेंट एक सेवा है, न कि इसके पीछे एक मानव ब्राउज़र वाला वेब ब्राउजर। मैं आदर्श रूप मेरे मुवक्किल कोड उपयोग करना चाहते हैं:मैं सिग्नलआर (.NET क्लाइंट) के साथ कस्टम मूल प्रमाणीकरण का उपयोग कैसे करूं?

hubConnection.Credentials = new NetworkCredential(userName, password); 

और अपने सर्वर कोड केन्द्रों पर [अधिकृत] उपयोग करने के लिए और मेरे लिए Context.User उपलब्ध है। सभी comms https से अधिक हैं इसलिए मुझे सादे पाठ की परवाह नहीं है।

मैंने एएसपीनेट basic authentication मार्गदर्शिका पढ़ी है जो दिखाता है कि IHttpModule का उपयोग करके प्रमाणीकरण तंत्र को ओवरराइड कैसे किया जाए। हालांकि, जब मैं HttpModule में कोड को तोड़ता हूं तो .NET SignalR क्लाइंट से आने वाले अनुरोधों में 'प्रमाणीकरण' हेडर कभी भी सेट नहीं होता है।

मैं बस इतना करना चाहता हूं कि क्लाइंट से उपयोगकर्ता नाम और पासवर्ड को पारित किया जाए और सर्वर पर प्रमाणीकरण कैसे हो। क्या यह इतना कठिन है? कोई जादू नहीं कोई सक्रिय निर्देशिका नहीं। बस मेरे द्वारा प्रमाणीकरण।

मेरा वर्तमान, कामकाजी, दृष्टिकोण कस्टम हेडर सेट करना है जो सिग्नलर स्तर (एक कस्टम प्राधिकरण एट्रिब्यूट का उपयोग करके) में व्याख्या की जाती है, हालांकि स्पष्ट रूप से 'इसे करने का सही तरीका' प्राधिकरण स्तर पर प्रमाणीकरण नहीं करना है और इसके बजाय किसी भी सिग्नलर सामान होने से पहले वेबसर्वर ऐसा करें।

क्या कोई भी पूर्ण, लेकिन गंदगी-सरल, कस्टम प्रमाणीकरण के लिए एक अच्छी प्रक्रिया का वर्णन कर सकता है?

उत्तर

5

ग्राहक

var connection = new Connection(url + "/echo"); connection.Credentials = new NetworkCredential("user", "password"); await connection.Start();

सर्वर

app.Map("/basicauth", map => { map.UseBasicAuthentication(new BasicAuthenticationProvider()); map.MapSignalR<AuthenticatedEchoConnection>("/echo"); map.MapSignalR(); });

NuGet पैकेज की आवश्यकता: Microsoft.Owin.Security.Basic

आप एक पूर्ण नमूना देख सकते हैं here

+0

हे सामान जीतना अगर आप स्वयं-होस्ट हैं, है ना? मैं आईआईएस में होस्टिंग करूँगा और ऐप नहीं होगा। कुछ भी() मुझे लगता है। मुझे आश्चर्य है कि सिर्फ 'वैधता उपयोगकर्ता विधि की आपूर्ति नहीं है और आप जाते हैं' – Robin

+0

आप IIS –

+5

पर होस्ट किए गए ओविन का उपयोग कर सकते हैं, मैं माइक्रोसॉफ्ट.ऑविन.क्योरिटी.बासिक न्यूगेट पैकेज के लिए पूरे दिन खोज रहा हूं। यह अब nuget.org पर नहीं है। क्या यह एक अलग NuGet सर्वर पर है? कटाना परियोजना स्थल पर यह कहता है कि पैकेज संस्करण 2.0.0.0 के साथ जारी किया गया था। सहायता के लिए धन्यवाद। –

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