2015-06-09 11 views
5

मैं एक क्लाइंट (वेब ​​एप्लिकेशन) और सेवा (डब्ल्यूसीएफ सेवा) स्थापित करने का प्रयास कर रहा हूं जो WSHttp बाइंडिंग का उपयोग करके संवाद करेगा। ऐसा लगता है कि इस बाध्यकारी का उपयोग करने के लिए क्लाइंट चैनल स्थापित करने के लिए प्रारंभिक संदेश भेजता है।डब्ल्यूसीएफ अनुरोध सुरक्षा के लिए शीर्षलेख जोड़ें टोकन संदेश

ग्राहक और सेवा के बीच एक सेवा बस मौजूद है जो कस्टम हेडर पर रूटिंग कर रही है। संदेश, BasicHttp बाइंडिंग सुरक्षा का उपयोग करते समय, बिना किसी समस्या के मार्ग।

मेरा प्रश्न है: क्या प्रारंभिक अनुरोध सुरक्षितता टोकन संदेश में एक ही कस्टम शीर्षलेख जोड़ने का कोई तरीका है?

अग्रिम धन्यवाद।

+0

हैडर आरएसटी संदेश का हिस्सा माना जाता है, या आप एक HTTP शीर्ष लेख के बारे में बात कर रहे हैं? – mclark1129

+0

मैं इसे आरएसटी साबुन संदेश शीर्षलेख का हिस्सा बनाना चाहता हूं। – hunda27

उत्तर

1

यह हल किया गया है।

दुर्भाग्यवश, एमएसडीएन दस्तावेज के अनुसार, डब्ल्यूसीएफ परिवहन सुरक्षा का उपयोग करने वाली एक सेवा राउटर से नहीं जा सकती है, न ही सेवा, न ही ग्राहक, इंटरनेट पर स्थित होना चाहिए (https://msdn.microsoft.com/en-us/library/ff648863.aspx#TransportSecurity)।

हम दोनों 'सिद्धांतों' का उल्लंघन करना चाहते थे।

इसलिए संदेशों को काटने के लिए, पांच कॉल और प्रतिक्रियाओं से, हम संदेश सुरक्षा पर स्विच कर चुके हैं और स्थापना सुरक्षा कॉन्टेक्स्ट कॉन्टेक्स्ट और नेगोशिएट सर्विस सर्विस को बंद कर दिया है। - यह सेवा और ग्राहक विन्यास सेटिंग्स दोनों पर किया जाना था।

इसके अतिरिक्त, एक उल्लेखनीय युक्ति यह हो सकती है कि, हमारी सेवा बस को सेवा इंगित करने के लिए, हमने क्लाइंट साइड पर सेवा के क्लाइंटवियाबाइबर को बदल दिया। सेवा बस को

WSHttpBinding binding = new WSHttpBinding(); 

binding.Security.Mode = SecurityMode.Message; 
binding.Security.Message.EstablishSecurityContext = false; 
binding.Security.Message.NegotiateServiceCredential = false; 

प्वाइंट ग्राहक:

EstablishContext और NegotiateServiceCredential बंद करें

serviceClient.Endpoint.EndpointBehaviors.Add(new ClientViaBehavior(new Uri("http://url/WCFService/ServiceName.svc"))); 
संबंधित मुद्दे

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