2009-11-25 16 views
9

दर्ज करने से पहले प्रत्येक अनुरोध पर एक विधि कॉल करने के लिए मेरे पास कई अलग-अलग कार्यों के साथ एक विश्वसनीय डब्ल्यूसीएफ सेवा है। प्रत्येक फ़ंक्शन के लिए मुझे एक प्रमाणीकरण विधि कॉल करने की आवश्यकता है जिसे मैंने लिखा है। मैं प्रत्येक विधि पर मैन्युअल रूप से इस विधि को कॉल कर सकता हूं लेकिन मैं इन कार्यों को दर्ज करने से पहले इस विधि को कॉल करने के लिए डब्ल्यूसीएफ इंजन को मजबूर करने का एक तरीका ढूंढ रहा था। यदि संभव है तो किस प्रकार, क्या कोई जानता है?फोर्स डब्ल्यूसीएफ वास्तविक फ़ंक्शन

चीयर्स

उत्तर

0

आप एक WCF मार्ग सेवा बनाने के बारे में सोच सकता है। अनुरोध में कुछ संकेतों के आधार पर, आप एक निश्चित एंडपॉइंट - अपनी प्रमाणीकरण विधि - और फिर वहां से, अपनी कॉल को वास्तविक तरीकों से रूट कर देंगे।

.NET 4 के लिए, रूटिंग सेवा कार्यक्षमता बॉक्स के बाहर डब्ल्यूसीएफ में शामिल की जाएगी।

मुझे नहीं पता कि यह सब कैसे आरईएसटी से मेल खाता है।

8

आप "कस्टम व्यवहार" दृष्टिकोण का उपयोग कर सकते हैं।

आपको IDispatchMessageInspector लागू करने वाली कक्षा लिखनी होगी। निम्नलिखित एमएसडीएन पत्रिका लेख इस बारे में एक अच्छी व्याख्या देता है: Extending WCF with Custom Behaviors (link points to Wayback Machine cached copy; downloads likely don't work)

+1

क्या यह अधिक नहीं है? – mafu

0

यदि यह प्राधिकरण के लिए है, तो क्या आप अंतर्निहित सेवाओं का उपयोग नहीं कर सकते?

उदाहरण के लिए, PrincipalPermission विशेषता है। क्या यह आपके मामले में मदद करता है?

2

WCF बाकी सेवा बाध्य करने के लिए पहली बार एक विधि विशेष रूप से अगर यह प्राधिकरण अनुकूलित के लिए है कॉल करने के लिए/ओवरराइड की CheckAccessCore विधि System.ServiceModel.ServiceAuthorizationManager देखें: http://msdn.microsoft.com/en-us/library/ms731774(v=vs.110).aspx

-1

मैं इस पोस्ट भर में आया है, जबकि एक ही चीज़ की खोज करना। उत्तर में से कोई भी सरल/त्वरित समाधान था, इसलिए यदि आप बस हर विधि से पहले एक फ़ंक्शन को कॉल करना चाहते हैं तो आप जो भी कर सकते हैं वह कर सकते हैं:

मैंने zero argument constructor बनाया :

public class myService : ImyService 
{ 
    myService() 
    { 
     ConnectToDatabAse(); 
     FunctionYouWantToCallBeforeEveryMethodCall(); 
     //Add here more 
    } 
} 
+0

कन्स्ट्रक्टर डेटा एक्सेस, प्रमाणीकरण या एप्लिकेशन तर्क के लिए एक जगह नहीं है। – dstarkowski

+0

यह सेवा काम नहीं करेगी यदि सेवा एकल उदाहरण पर सेट की गई है –

+0

यह तब तक काम नहीं करेगा जब तक कि आप स्टेटलेस (सत्र-कम) संचार का उपयोग न करें। – Jacob

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