2010-12-28 15 views
5

में सत्र कृपया मदद करें यदि आप कर सकते हैं।आरएसटी डब्ल्यूसीएफ सेवा और एएसपी.नेट

मैं डब्ल्यूसीएफ आरईएसटी सेवा के भीतर से एएसपीनेट एप्लिकेशन की वर्तमान सत्र वस्तु तक पहुंचने का प्रयास कर रहा हूं।

सभी में कोई सफलता हुई है। सेवा से प्राप्त सत्र ऑब्जेक्ट एएसपीएक्स पृष्ठों में समान नहीं है।

तो, यहाँ मेरी सवाल यह है: HttpContext.Current.Session के माध्यम से एक बाकी WCF सेवा में वर्तमान सत्र तक पहुँचने के लिए यह संभव है?

[AspNetCompatibilityRequirements 
(RequirementsMode = 
AspNetCompatibilityRequirementsMode.Allowed)] // I have also tried Required 
public class DataService : IDataService 
web.config में

:

कोड निम्नलिखित बातों है

<system.serviceModel> 
    <behaviors> 
    <endpointBehaviors> 
    <behavior name="ClosedRoom.DataServiceBehavior"> 
    <enableWebScript /> 
    </behavior> 
    </endpointBehaviors> 
    </behaviors> 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" > 
    <baseAddressPrefixFilters> 
     <add prefix="http://localhost:63399"/> 
     </baseAddressPrefixFilters> 
    </serviceHostingEnvironment> 

    <services> 
    <service name="ClosedRoom.DataService"> 
     <endpoint address="" behaviorConfiguration="ClosedRoom.DataServiceBehavior" 
     binding="webHttpBinding" contract="ClosedRoom.IDataService" /> 
    </service> 
    </services> 
</system.serviceModel> 

धन्यवाद,

+1

WCF ans ASP.NET दो पूरी तरह से अलग प्रौद्योगिकियों हैं। कृपया अपने प्रश्न को स्पष्ट करें। यह स्पष्ट नहीं है कि आप क्या करने की कोशिश करते हैं। एएसपी.नेट सत्र किसी भी डब्ल्यूसीएफ सेवा सत्र से स्वतंत्र हैं जो आप अपने (एएसपी.नेट वेब?) एप्लिकेशन में होस्ट कर सकते हैं। – Jan

+0

http://blogs.msdn.com/b/wenlong/archive/2010/02/21/using-asp-net-sessions-som-wcf.aspx से नमूना एप्लिकेशन डाउनलोड करने का प्रयास करें और यह पता लगाने का प्रयास करें कि आप क्या खो रहे हैं । – decyclone

+0

क्या आप सेवा को अपने एप्लिकेशन से या ब्राउज़र से कॉल करते हैं? क्या आपने ट्रांसफर कुकीज़ की जांच करने की कोशिश की? एएसपी.नेट में सत्र कुकी द्वारा पहचाना जाता है। यदि सेवा अनुरोध के साथ कुकी को स्थानांतरित नहीं किया जाता है तो नया सत्र बनाया जाता है। Btw। किसी भी सत्र के बिना आरईएसटी सेवाएं स्टेटलेस होनी चाहिए। –

उत्तर

4

आदेश में के लिए एक सत्र rehidrated जाए, तो आप की आपूर्ति करने की जरूरत है एक चाबी। एक सामान्य एएसपीनेट एप्लिकेशन में जो कुंजी उपयोगकर्ता द्वारा कुकी या यूआरएल पैरामीटर के माध्यम से प्रदान की जाती है।

कैसे आप बाकी ग्राहक से उस कुंजी अधिग्रहण की योजना बना रहे हैं? प्रमाणीकरण के बाद शुरुआत में उन क्लाइंट को वह कुंजी कैसे प्राप्त होती है? वे कुंजी कहाँ स्टोर करते हैं?

यही कारण है कि आरईएसटी आधारित सेवाओं में से अधिकांश एपीआई एक्सेस कुंजी लेते हैं और प्रत्येक अनुरोध पर हस्ताक्षर करने के लिए एक और कुंजी भी लेते हैं।

आईएमएचओ सत्र आरईएसटी आधारित डिजाइनों में अप्रासंगिक हैं।

+0

मैं इस पोस्ट की भावना से सहमत हूं। मुझे लगता है कि ओपी को अपने वास्तुकला में एक और तत्व जोड़ने की जरूरत है। – jcolebrand

+0

@ user6130: इस उत्तर के लिए धन्यवाद।मेरे लिए एक सवाल के रूप में: मैं एक कुकी में उपयोगकर्ता आईडी जोड़ना चाहता हूं (जिसे मैंने 5 मिनट की स्लाइडिंग समाप्ति के साथ लॉगिन समय पर सेट किया है) और उस अनुरोध का उपयोग मेरे अनुरोध पर हस्ताक्षर करने के लिए करें और सर्वर पक्ष की जांच करें यदि उस उपयोगकर्ता के पास डेटा तक पहुंच है वह अनुरोध करने की कोशिश करता है। क्या यह अच्छा अभ्यास माना जाएगा? धन्यवाद! :) – Flo

1

मैं जानता हूँ कि इस सवाल का एक लंबे समय पहले कहा गया था, लेकिन यह आपकी सेवा वर्ग के शीर्ष पर एक asp.net अनुप्रयोग के भीतर WCF शोकहारा सेवा की मेजबानी और फिर से प्राप्त किया जा सकता निम्न विशेषता जोड़ें:

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)] 

यह सक्षम बनाता सहित बहुत सी बातें:

HttpContext: ASP.NET संगतता मोड में चल रहे वर्तमान का उपयोग कर सकते WCF सेवाओं और उसके संबंधित राज्य।

अधिक जानकारी के लिए यहाँ देखें: What does AspNetCompatibilityRequirements really mean?

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