asp.net web api - सिग्नल आर एंड ओपनआईडी कनेक्ट



asp.net-web-api asp.net-core (1)

मेरे पास एक सर्वर है जो प्राधिकरण ढांचे के रूप में ASP.NET Core Web Api और OpenIddict का उपयोग करता है। अब मैंने एक SignalR होस्ट को जोड़ दिया है और इसे प्राधिकरण जोड़ना चाहते हैं।

विभिन्न स्रोतों से मैंने पाया है कि SignalR (जेएस क्लाइंट) चाहता है कि आप क्रेसस्ट्रिंग में या कुकी द्वारा एक्सेस टोकन भेजते हैं क्योंकि वेबसाईट हेडर का समर्थन नहीं करते हैं।

चूंकि प्रमाणीकरण मिडलवेयर एक प्राधिकरण प्रविष्टि के लिए क्विकस्ट्रिंग या कुकी कंटेनर की जांच नहीं करता है, इसलिए मुझे ऐसे एक प्रदाता / रिट्रीएवर / रिज़ॉल्वर को कार्यान्वित करने की आवश्यकता है जो इस मान को अपने द्वारा पढ़ता है।

मैंने IdentityServer OpenIddict लिए एक समाधान पाया है लेकिन OpenIddict बारे में कुछ भी नहीं है

कहाँ / मैं OpenIddict साथ इस तरह के एक टोकन रिज़ॉल्वर को कैसे लागू OpenIddict ?


यदि आप JwtBearerAuthentication उपयोग JwtBearerAuthentication तो आप टोकन सेट करने के लिए OnMessageReceived का उपयोग कर सकते हैं:

Events = new JwtBearerEvents()
{
   OnMessageReceived = async (ctx) =>
   {
        ctx.Token = ctx.Request.Query["<qs-name>"];
   }
}

या यदि आप IdentityServerAuthentication उपयोग करते हैं तो आप TokenRetriever उपयोग कर सकते हैं (परीक्षण नहीं किया गया, लेकिन ऐसा कुछ होना चाहिए):

   TokenRetriever = (ctx) =>
   {
        return ctx.Request.Query["<qs-name>"];
   }




openiddict