2013-02-27 23 views
6

क्या वैसे भी मैं एक सिग्नलआर हब के अंदर से कुकी सेट कर सकता हूं, विशेष रूप से OnConnected विधि। मैं एक सत्र आईडी के साथ एक कुकी भेजना चाहता हूँ।सर्वर पर सिग्नलआर हब से कुकी सेट करें

मैंने कोशिश की लेकिन यह काम नहीं कर रहा था, यह भी अजीब लग रहा है क्योंकि मुझे यकीन नहीं है कि मुझे एक स्ट्रिंग और कुकी की एक महत्वपूर्ण मूल्य जोड़ी प्रदान करने की आवश्यकता क्यों है।

public override Task OnConnected() 
{ 
    var guid = new Guid(); 
    Context.RequestCookies.Add("SessionID", new Microsoft.AspNet.SignalR.Cookie("SessionID", guid.ToString())); 
    return null; 
} 

उत्तर

2

यह एक पुरानी सवाल है, लेकिन इस मामले में किसी को भी इस पर ठोकर, वहाँ signalr में एक केंद्र से कुकीज़ जोड़ने के लिए एक रास्ता है 2.0+ । HttpContextBase हब अनुरोध संदर्भ के माध्यम से पहुँचा जा सकता है, तो आप कुछ इस तरह कर सकते हैं:

var newCookie = new HttpCookie("cookieName", "cookieValue"); 
Context.Request.GetHttpContext().Response.Cookies.Add(newCookie); 
0

मैंने सर्वर पर अधिक विकल्प रखने के लिए हब के बजाय PersistentConnection का उपclass और उपयोग करना चुना।

मेरे मामले में मैं ऑनकनेक्टेडएसिंक को ओवरराइड करता हूं और कनेक्शन/सत्रों का ट्रैक रखने के लिए कनेक्शन आईडी का उपयोग करता हूं। शायद आप इस दृष्टिकोण पर विचार कर सकते हैं?

protected override Task OnConnectedAsync(IRequest request, string connectionId) 
    { 
+0

मैं सच में केन्द्रों से PersistentConnections से परिवर्तन नहीं कर सकते, यह एक क्रांतिकारी परिवर्तन –

1

मैं अंततः उनकी प्रस्तुति MVC नियंत्रक से कुकी सेट करने का फैसला किया, मैं वैसे भी एक SignalR कॉल में से स्थापित करने के लिए नहीं मिला।

-2

मैं सिर्फ एक ही बात करने की कोशिश की और यह काम करने लगता है:

HttpContext.Current.Response.Cookies.Add(cookie); 
+0

बात SignalR के बारे में है की तरह है, लेकिन नहीं MVC। – Agat

+0

बहुत समय पहले, लेकिन मुझे यकीन है कि मैंने इसे सिग्नलआर संदर्भ में किया था। – modec

+0

सुधार के साथ अपना उत्तर अपडेट करें और मैं अनसुलझा करूंगा। – Agat

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