हमें यह समझने में कठिनाई हो रही है कि ये प्रमाण-पत्र कैसे काम करते हैं। वास्तव में, वे काम नहीं कर सकते हैं कि हम उन्हें कैसे काम करने की उम्मीद करते हैं। वर्तमान मुद्दे की व्याख्या यहां दी गई है।डिफ़ॉल्ट प्रमाणपत्र और डिफ़ॉल्ट नेटवर्क प्रमाणपत्र का उपयोग
हमें 2 सर्वर मिलते हैं जिन्हें वेबसाइकिलों के माध्यम से एक-दूसरे से बात करने की आवश्यकता होती है। पहला वाला (चलो इसे Server01
पर कॉल करें) में Windows सेवा नेटवर्क नेटवर्क सेवा के रूप में चल रही है। अन्य Server02
में आईआईएस 6.0 के साथ चल रहे रिपोर्टिंग सर्विसेज हैं। Server01
पर विंडोज सेवा रिपोर्ट बनाने और उन्हें ईमेल द्वारा भेजने के लिए Server02
रिपोर्टिंग सेवा वेब सेवा का उपयोग करने का प्रयास कर रही है।
तो, हमने अभी तक जो प्रयास किया है, वह यहां है।
कार्यावधि में साख की स्थापना (यह बिल्कुल ठीक काम करता है):
rs.Credentials = new NetworkCredentials("user", "pass", "domain");
हालांकि अब ... हम की अनुमति नहीं है अगर हम एक सामान्य उपयोगकर्ता इस्तेमाल कर सकते हैं सब ठीक हो जाएगा। तो, हम आरएस वेब सेवा करने के लिए DefaultCredetials या DefaultNetworkCredentials का उपयोग करें और इसे पारित करने की कोशिश कर रहे:
rs.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials
या:
rs.Credentials = System.Net.CredentialCache.DefaultCredentials
किसी भी तरह से काम नहीं करेगा। हम हमेशा आईआईएस से 401 अनौपचारिक हो रहे हैं।
एक रिमोट एसक्यूएल सर्वर
यदि आप में पहुंच प्रदान करना: अब, क्या हम जानते हैं कि अगर हम एक संसाधन NetworkService के रूप में लॉग करने के लिए पहुँच प्रदान करना चाहते हैं, तो हम
DOMAIN\MachineName$
(http://msdn.microsoft.com/en-us/library/ms998320.aspx) को प्रदान करने की आवश्यकता है एक ही डोमेन (या एक विश्वसनीय डोमेन में) किसी अन्य सर्वर पर डेटाबेस तक पहुंच रहे हैं, नेटवर्क सेवा खाते के नेटवर्क प्रमाण-पत्र डेटाबेस में प्रमाणीकृत करने के लिए उपयोग किए जाते हैं। नेटवर्क सेवा खाता के प्रमाण पत्र डोमेन नाम \ AspNetServer $ के रूप में हैं, जहां डोमेन नाम ASP.NET सर्वर का डोमेन है और AspNetServer आपका वेब सर्वर नाम है।उदाहरण के लिए, यदि आपका ASP.NET एप्लिकेशन डोमेन CONTOSO में SVR1 नामक सर्वर पर चलता है, तो SQL सर्वर CONTOSO \ SVR1 $ से डेटाबेस एक्सेस अनुरोध देखता है।
हमने माना है कि आईआईएस के साथ समान तरीके से पहुंच प्रदान करना होगा। हालांकि, यह नहीं है। या कम से कम, सही तरीके से प्रमाणीकृत करने के लिए कुछ ठीक से सेट नहीं किया गया है।
तो, यहाँ कुछ प्रश्न हैं:
हम के बारे में "ग़लत पहचान बनाना उपयोगकर्ता" पढ़ा है कहीं न कहीं, हम Windows सेवा में यह कहीं स्थापित करने के लिए की जरूरत है?
क्या रिमोट आईआईएस सर्वर में अंतर्निहित नेटवर्क सेवा सेवा तक पहुंच प्रदान करना संभव है?
पढ़ने के लिए धन्यवाद!
उत्कृष्ट लिंक: डी – omglolbah
एमएसडीएन में 2 घंटे पढ़ने वाले लेख को जोड़ने के बजाय, संक्षेप में प्रश्न के वास्तविक उत्तर को लिखना अच्छा लगेगा, और दूसरों को दोष देना पढ़ा नहीं है यह :) –
@ d.popov मूल चीजों को संक्षेप में मेरे लिए वास्तव में एक चुनौती है। यदि आप इसमें रूचि रखते हैं तो आप स्वयं को आजमा सकते हैं। कहना है कि सवाल का वास्तविक जवाब उस लेख से छोटा नहीं होगा। –