अपना खुद का रोल न करें और स्पष्ट पैरामीटर जोड़ें - यह वास्तव में बहुत अधिक काम है!
डब्ल्यूसीएफ सुरक्षा सुविधाओं की जांच करें - उनमें से बहुत सारे उपलब्ध हैं! आप उदा। संदेश को सुरक्षित करें और संदेश के अंदर प्रमाण-पत्र शामिल करें - सभी बॉक्स के बाहर, आपकी तरफ से कोई अतिरिक्त कोडिंग आवश्यक नहीं है!
मिशेल लेरोक्स बस्टामेंटे द्वारा WCF सुरक्षा पर इस उत्कृष्ट लेख देखें: http://www.devx.com/codemag/Article/33342
आपके मामले में, मैं उपयोगकर्ता नाम पहचान के साथ संदेश सुरक्षा सुझाव देंगे - आप दोनों सिरों पर इस विन्यस्त करने की जरूरत:
सर्वर साइड:
<bindings>
<basicHttpBinding>
<binding name="SecuredBasicHttp" >
<security mode="Message">
<message clientCredentialType="UserName"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
<services>
<service name="YourService">
<endpoint address="http://localhost:8000/MyService"
binding="basicHttpBinding"
bindingConfiguration="SecuredBasicHttp"
contract="IYourService" />
</service>
</services>
और आप ग्राहक के पक्ष में एक ही सेटिंग्स लागू करने की आवश्यकता:
<bindings>
<basicHttpBinding>
<binding name="SecuredBasicHttp" >
<security mode="Message">
<message clientCredentialType="UserName"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:8000/MyService"
binding="basicHttpBinding"
bindingConfiguration="SecuredBasicHttp"
contract="IYourService" />
</client>
अब आप अपने सर्वर और ग्राहक सुरक्षा पर सहमत हैं - ग्राहक पर, आप तो इस तरह उपयोग करने के लिए उपयोगकर्ता नाम और पासवर्ड निर्दिष्ट करें:
YourServiceClient client = new YourServiceClient();
client.ClientCredentials.UserName.UserName = "your user name";
client.ClientCredentials.UserName.Password = "top$secret";
सर्वर साइड पर, आप की आवश्यकता होगी यह निर्धारित करने के लिए कि इन उपयोगकर्ता प्रमाण-पत्रों को कैसे सत्यापित किया जा रहा है - आम तौर पर या तो Windows डोमेन (सक्रिय निर्देशिका) के विरुद्ध, या ASP.NET सदस्यता प्रदाता मॉडल के विरुद्ध। किसी भी मामले में, यदि उपयोगकर्ता क्रेडेंशियल्स को उस स्टोर के विरुद्ध सत्यापित नहीं किया जा सकता है जिसे आप परिभाषित करते हैं, तो कॉल अस्वीकार कर दिया जाएगा।
उम्मीद है कि यह थोड़ा सा मदद करता है - सुरक्षा डब्ल्यूसीएफ में एक बड़ा विषय है और इसमें बहुत सारे विकल्प हैं - यह थोड़ा मुश्किल हो सकता है, लेकिन अंत में, आमतौर पर यह समझ में आता है! :-)
मार्क
अच्छा लग रहा है; क्या आपको पता है कि कच्चे httpwebrequest का उपयोग करते हुए यह (या कुछ समान) उपयोग योग्य है या नहीं? मेरे पास एक कस्टम आरपीसी स्टैक है जो मैं उसी तरह से सुरक्षित करना चाहता हूं (यदि मैं एक गैर-मामूली उत्तर है तो मैं निश्चित रूप से एक नया क्वेस्टन के रूप में पूछ सकता हूं) –
यह हाँ करना चाहिए; देखें http://www.silverlightshow.net/items/Cookies-in-Silverlight-Web-Requests.aspx – blowdart
ता; मैं इसे देख लूंगा ;- –