कुछ अन्य उत्तर से लापता उपयोग करने के लिए SignalR के कस्टम में बनाया क्षमता है ऑथ कक्षाएं विषय पर वास्तविक सिग्नलआर दस्तावेज भयानक है, लेकिन मैंने पेज के निचले हिस्से में एक टिप्पणी छोड़ दी है कि वास्तव में इसे कैसे करें (Authentication and Authorization for SignalR Hubs)।
मूल रूप से आपके द्वारा दी गई SignalR AuthorizeAttribute वर्ग
[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
public class CustomAuthAttribute : AuthorizeAttribute
तो फिर तुम वर्ग घोषणा से ऊपर [CustomAuth] के साथ अपने केन्द्रों को सजाने ओवरराइड।
bool AuthorizeHubConnection(HubDescriptor hubDesc, IRequest request);
bool AuthorizeHubMethodInvocation(IHubIncomingInvokerContext hubContext, bool appliesToMethod);
जब से मैं आईआईएस सर्वर पर कर रहा हूँ और एक कस्टम प्रमाणन योजना है, मैं बस सच AuthorizeHubConnection विधि से लौटने के लिए, क्योंकि मेरे प्रमाणीकरण HttpModule मैं पहले से ही authenicate: फिर आप को संभालने के लिए प्रमाणन के लिए निम्न विधियों ओवरराइड कर सकते हैं/सिग्नल/कनेक्ट और/सिग्नल/कॉल को दोबारा कनेक्ट करें और एचटीपी कॉनटेक्स्ट आइटम में उपयोगकर्ता डेटा को सेव करें। तो मॉड्यूल प्रारंभिक सिग्नलर कनेक्शन कॉल (एक मानक HTTP कॉल जो वेब सॉकेट कनेक्शन शुरू करता है) पर प्रमाणीकरण संभालता है।
विशिष्ट हब विधियों पर कॉल अधिकृत करने के लिए मैं HttpContext में सहेजी गई अनुमतियों के विरुद्ध विधि नामों की जांच करता हूं (यह वही HttpContext प्रारंभिक कनेक्ट अनुरोध से सहेजा गया है) और उपयोगकर्ता को निश्चित कॉल करने की अनुमति है या नहीं तरीका।
अपने मामले में आप वास्तव में AuthorizeHubConnection विधि का उपयोग कर सकते हैं और विशिष्ट भूमिकाओं के साथ अपने हब विधियों को सजाने में सक्षम हो सकते हैं, क्योंकि ऐसा लगता है कि आप एक मानक पहचान प्रणाली का उपयोग कर रहे हैं, लेकिन अगर कुछ सही काम नहीं कर रहा है तो आप हमेशा वापस आ सकते हैं HttpModule (या OWIN) मध्य-बर्तन के साथ बलपूर्वक बलपूर्वक और AuthorizeHubMethodInvocation के साथ बाद के वेबसाईट कॉल पर संदर्भ डेटा देख रहे हैं।
सिग्नलर 1.0 और ओविन का उपयोग कर सिग्नलर यूआरएल को लॉक करने का एक और तरीका: http://eworldproblems.mbaynton.com/2012/12/securing-signalr-to-your-sites-users/ – mbaynton