हम एक डब्ल्यूसीएफ आरईएसटी वेब सेवा विकसित करने की प्रक्रिया में हैं जो किसी अज्ञात उपयोगकर्ता से मनमाने ढंग से पाठ का एक गुच्छा प्राप्त करता है और फिर बैक एंड पर कुछ प्रोसेसिंग करता है।डब्ल्यूसीएफ आरईएसटी सेवा - 401 अनधिकृत
उदाहरण के लिए, यहाँ हमारे वेब सेवा से एक विधि है:
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
public class MyRESTService : IMyRESTService
{
[WebInvoke(Method = "PUT", UriTemplate = "/MyRESTMethod?paramA={paramA}¶mB={paramB}")]
public Stream MyRESTMethod(string paramA, string paramB, Stream rawData)
{
//do some stuff...
}
}
हम सिर्फ डिफ़ॉल्ट आईआईएस सेटिंग्स का उपयोग करते हैं हम एक (401) Unauthorized
मिलता है। हालांकि, बहुत परीक्षण और त्रुटि के बाद हमने पाया कि हम अपनी सेवा के लिए वास्तविक .svc
फ़ाइल पर 'हर किसी' को WRITE पहुंच देकर काम करने के लिए इसे प्राप्त कर सकते हैं।
मेरा प्रश्न है: क्यों दुनिया में आईआईएस को काम करने के लिए .svc
फ़ाइल में WRITE तक पहुंच की आवश्यकता होगी? क्या कोई बेहतर तरीका है या क्या मैं इस हैकिश (और संभवतः असुरक्षित) कामकाज से फंस गया हूं?
डब्ल्यूटीएफ माइक्रोसॉफ्ट?
संभवतः संबंधित:
- PUT and DELETE in RESTful WCF Service cause 401 Unauthorized error
- IIS7 Post/Put/Patch/Delete WCF oData - Authentication Failure 401.3
अधिकारों का उपयोग में
<authentication mode="None" />
<system.web>
के अंदर डाल जरूरी "सभी" के लिए प्रदान किए जाने की जरूरत नहीं है द्वारा निर्धारित किया जा सकता है। इसके बजाय प्रमाणीकृत उपयोगकर्ता के पास ये अधिकार होना चाहिए। अज्ञात पहुंच के लिए यह आईयूएसआर है। – chiccodoro