मैंने Asp.Net के शीर्ष पर एक सर्विसस्टैक सेवा बनाई है जो मूल प्रमाणीकरण लागू करता है। सब कुछ सेवा मार्गों पर ठीक काम कर रहा है। मैं लॉगिन करने में सक्षम हूं और मुझे सत्र कुकीज़ मिलती है जो बाद की कॉल पर मान्य होती हैं। मैं उन अनुरोधों के लिए एक HttpClient का उपयोग कर रहा हूँ।सर्विसस्टैक प्रमाणीकरण प्लगइन का उपयोग कर सिग्नलआर हब प्रमाणीकरण
मेरे पास एक सिग्नलआर हब भी है जो एक ही Asp.Net सेवा पर चलता है, लेकिन प्रिंसिपल को मेरे हब विधियों पर प्रमाणित नहीं किया जाता है।
मूल रूप से मुझे जो चाहिए वह सर्विसस्टैक के लिए मेरे हब में कॉल को अवरुद्ध करने और सत्र कुकी को सत्यापित करने और Context.User.Identity को पॉप्युलेट करने और इसे प्रमाणीकृत के रूप में चिह्नित करने के लिए है। अगर मैं इसे स्थापित कर सकता हूं, तो मेरे केंद्र पर एक सरल [अधिकृत] विशेषता शेष करेगी। ,
// set up a HttpClient with a cookie container to hold the session cookie
var cookieJar = new CookieContainer();
var handler = new HttpClientHandler { CookieContainer = cookieJar, UseCookies = true, UseDefaultCredentials = false };
var client = new HttpClient(handler) { BaseAddress = _baseUri };
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Basic",
Convert.ToBase64String(Encoding.ASCII.GetBytes(string.Format("{0}:{1}", userName, password))));
// do client login and get response with session cookie...
var response = client.PostAsync(...);
// add the cookies to the SignalR hub connection
var responseCookies = cookieJar.GetCookies(_baseUri);
var cookieContainer = new CookieContainer();
foreach (Cookie cookie in responseCookies)
{
cookieContainer.Add(cookie);
}
_hubConnection = new HubConnection(_baseUri.ToString()) { CookieContainer = cookieContainer };
इस सेटअप के बाद मेरी सत्र कुकीज़ प्रत्येक मंगलाचरण पर हब के लिए भेजा जाता:
यहाँ मेरी कोड का एक नमूना है। किसी भी तरह से मुझे उन अनुरोधों को रोकने और प्रमाणीकृत उपयोगकर्ता सेट करने के लिए सर्विसस्टैक की आवश्यकता है।
जो मूल रूप से पोस्ट किए गए कोड के साथ संयोजन में काम करता था जहां मैंने साइनल कुकी कुकी कंटेनर में ऑथ कुकीज़ सहेजी थी। धन्यवाद! – Kevin