आप IIS में अपने WCF सेवा की मेजबानी कर रहे हैं, यह ASP.NET वर्कर प्रक्रिया में चला जाएगा, तो आप प्रमाणीकरण और प्राधिकरण कॉन्फ़िगर कर सकते हैं के रूप में आप ASMX वेब सेवाओं के साथ करना होगा जिसका मतलब है:
<system.Web>
<authentication mode="Windows"/>
<authorization>
<allow roles=".\Administrators"/>
<deny users="*"/>
</authorization>
</system.Web>
फिर आपको आईआईएस में अपने एंडपॉइंट पर अनाम पहुंच को अक्षम करना होगा, और इसके बजाय विंडोज इंटीग्रेटेड प्रमाणीकरण सक्षम करना होगा।
आईआईएस प्रबंधन कंसोल में आप अपनी वर्चुअल निर्देशिका के लिए 'गुण' संवाद लाने के द्वारा ऐसा करते हैं। फिर आपको 'निर्देशिका सुरक्षा' टैब में सुरक्षा सेटिंग्स मिल जाएगी।
बेशक, उपलब्ध एकमात्र संचार चैनल HTTP होगा।
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="WindowsSecurity">
<security mode="Transport">
<transport clientCredentialType="Windows" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<client>
<endpoint address="https://localhost/myservice"
binding="wsHttpBinding"
bindingConfiguration="WindowsSecurity"
contract="IMyService" />
</client>
</system.serviceModel>
ध्यान रखें कि आपके सेवा समाप्ति बिंदु wsHttpBinding का उपयोग करता है, तो तो आप भी अपने समाप्ति बिंदु को एसएसएल जोड़ना होगा: ग्राहक इन सेटिंग के साथ परिवहन स्तरीय पर अनुरोध में उनके Windows पहचान प्रदान करना होगा चूंकि आप परिवहन स्तर की सुरक्षा का उपयोग करते समय डब्ल्यूसीएफ द्वारा लागू की गई आवश्यकता है।
आप के बजाय basicHttpBinding के लिए जाना है, तो आप जहां SSL नहीं रह गया है की आवश्यकता होती है एक कम सुरक्षित प्रमाणीकरण मोड WCF में उपलब्ध TransportCredentialOnly कहा जाता है, का उपयोग करने में सक्षम हैं।
अधिक विस्तृत जानकारी के लिए, here डब्ल्यूसीएफ में सुरक्षा बुनियादी ढांचे का एक अच्छा अवलोकन है।
स्रोत
2008-11-14 10:21:12
कृपया ध्यान दें कि यदि आप ऐसा करना चाहते हैं तो आपको अपनी web.config फ़ाइल में ASP.NET संगतता मोड सक्षम करने की आवश्यकता है। अन्यथा यह काम नहीं करेगा (और एक त्रुटि भी फेंक नहीं देगा)। – Rocklan
नोट: इसके लिए काम करने के लिए, system.web/roleManager/@enabled को झूठा होना चाहिए, या छोड़ा जाना चाहिए, अन्यथा भूमिका आईआईएस होगी। नेट रोल, और विंडोज समूह नहीं। – Polyfun