2012-02-23 5 views
5

मैंने एसएसआरएस 2008r2 के लिए एक कस्टम सुरक्षा विस्तार लिखा है और तैनात किया है और यह बीआईडीएस 2008/विजुअल स्टूडियो के भीतर से रिपोर्ट को तैनात करने की कोशिश करते समय खूबसूरती से काम करता है।मैं एसएसआरएस और बीआईडीएस कस्टम सुरक्षा एक्सटेंशन के साथ उपयोगकर्ता भूमिकाओं/अनुमतियों तक कैसे पहुंच सकता हूं?

सुरक्षा विस्तार के लिए आर्किटेक्चर कई अधिकारियों के माध्यम से लॉग इन को संभालता है और मैं इसे लॉगऑन्यूसर() में उपयोगकर्ता सत्र बनाकर प्रबंधित करता हूं, इसे डेटाबेस में रखता हूं और फिर आरएस वेब सेवा के लिए क्लाइंट प्रॉक्सी क्लास में सत्र लोड करता हूं सेवा से कुकी द्वारा पारित एक यूआईडी, फिर वर्तमान उपयोगकर्ता के लिए सत्र यूआईडी प्लस उपयोगकर्ता भूमिकाओं को रखने के लिए प्रमाणीकरण टिकट को फिर से लिखना। एसएसआरएस क्रियाओं और वस्तुओं पर उपयोगकर्ता अनुमतियों को प्रबंधित करने के लिए इन मानों का उपयोग कस्टम प्राधिकरण एक्सटेंशन में किया जा सकता है।

समस्या जो मैंने में चलाया है यह है कि यह बीआईडीएस से रिपोर्ट को तैनात करते समय काम नहीं करता है। यह सीधे सेवा का उपयोग करता है और इसलिए सेवा प्रॉक्सी कक्षा की आवश्यकता नहीं है। मैंने HTTP संदर्भ पर पोस्ट-प्रमाणीकरण ईवेंट को संभालने का प्रयास किया है, लेकिन सत्र कुकी द्वारा आरएस सेवा द्वारा जारी नहीं किया जाता है, इसलिए मैं सत्र मानों तक नहीं पहुंच सकता।

तो मुझे क्या याद आ रही है? उपयोगकर्ता भूमिकाओं को नियंत्रित करने के लिए कोई और तरीका है & अनुमतियां जिनके लिए कहीं भी हार्ड कोडिंग उपयोगकर्ता नाम की आवश्यकता नहीं है? जैसे मैंने कहा, लॉग इन को कई अधिकारियों का उपयोग करके बनाया जा सकता है, इसलिए केवल उपयोगकर्ता नाम के माध्यम से अनुमतियां प्रबंधित करना संभव नहीं है (और इसका विचार मुझे क्रिंग करता है)।

एक संभावित समाधान जिसे मैंने सोचा था कि बीआईडीएस के लिए एक एक्सटेंशन या प्लगइन लिख रहा है जो अनिवार्य रूप से वेब सेवा के लिए प्रॉक्सी के रूप में कार्य करता है जो मुझे लॉगिन प्रक्रिया पर अधिक नियंत्रण की अनुमति देगा, लेकिन मुझे यह नहीं पता कि यह संभव है (google कोई मदद नहीं है ...)

किसी भी मदद की सराहना की जाएगी!

+0

क्या आपको पूर्ण स्रोत कोड के साथ कोई समाधान मिला? –

उत्तर

2

वैसे मैंने एक सुरुचिपूर्ण समाधान खोजने के लिए छोड़ दिया है, इसलिए मैं कम से कम प्रतिरोध की सड़क पर उतर गया हूं और जो कुछ मैं इकट्ठा करता हूं वह है 'एसएसआरएस' एक 'मास्टर' खाता रखने का दिशानिर्देश, जिसे मैं निर्दिष्ट करूंगा, रिपोर्ट के लिए इस्तेमाल किया जाना है तैनाती और सदस्यता। इस खाते को सेटिंग्स फ़ाइल से हार्ड कोड या खींचा जाना होगा, मुझे यकीन नहीं है कि कोई अन्य तरीका है या नहीं। चीयर्स।

अद्यतन: मैं इस सड़क से नीचे गया हूं और यह ठीक काम करता है। यदि कोई उपयोगकर्ता वेब फ्रंट एंड के माध्यम से लॉग इन होता है तो वे वहां रिपोर्ट को तैनात कर सकते हैं, लेकिन यदि वे विकास पर्यावरण (बीआईडीएस) से तैनात करना चाहते हैं तो उन्हें लॉगिन खाते के दौरान मास्टर खाते का उपयोग करके लॉग इन करने की आवश्यकता होती है। मैंने केवल इस विशिष्ट उपयोग के लिए तैनाती खाते को प्रतिबंधित कर दिया है।

+0

एक व्यवहार्य विकल्प की तरह लगता है। एक और दिशा रिपोर्ट तैनाती के लिए अन्य उपकरणों का उपयोग करना है। हम केवल प्रारंभिक रिपोर्ट सर्वर परिनियोजन के लिए BIDS परिनियोजन का उपयोग करते हैं, और केवल आधा समय। आरएसएस (http: // stackoverflow।कॉम/प्रश्न/3056799/स्वचालित-एसएसआरएस-रिपोर्ट-परिनियोजन) में एक ही प्रमाणीकरण समस्या हो सकती है, लेकिन आईई के माध्यम से तैनाती दुनिया में सबसे बुरी चीज नहीं है ... –

+0

@JamieF आपकी टिप्पणी के लिए धन्यवाद, हाँ मैंने सोचा था वेब फ्रंट एंड के माध्यम से तैनाती, लेकिन आईएमओ यह केवल रिपोर्ट डेवलपर्स के लिए चीजों को जटिल बनाता है। साथ ही वही समस्या तब होती है जब सदस्यता चलती है (यानी उपयोगकर्ता का विवरण ठीक से लोड नहीं किया जा सकता है) इसलिए एक मास्टर खाता दो पक्षियों/एक पत्थर दृष्टिकोण होगा। लेकिन मैं इसके बारे में विशेष रूप से खुश नहीं हूं। – Dan

2

क्या आप IAuthenticationExtension इंटरफ़ेस का उपयोग कर रहे हैं? निम्न लिंक आपको एक्सेस नियंत्रण का एक अच्छा उदाहरण प्रदान करता है यदि आपको वही चाहिए जो आपको चाहिए। http://blogs.msdn.com/b/jameswu/archive/2008/07/15/anonymous-access-in-sql-rs-2008.aspx

मैं कल्पना कर सकते हैं कि NT उपयोगकर्ता नाम यहां ट्रैक किया जा सकता है और फिर सक्रिय निर्देशिका समूहों आदि मुख्य सिरदर्द मैं यहाँ देख सकते हैं SSRS नीति विन्यास में सही विश्वास नीति को सक्षम हो जाएगा के खिलाफ बनाया लुकअप।

+0

आपके उत्तर के लिए धन्यवाद लेकिन जैसा कि मैंने उपरोक्त उल्लेख किया है, मैं लॉगिन प्रमाण-पत्रों के लिए एक से अधिक प्राधिकरणों के साथ प्रपत्र प्रमाणीकरण का उपयोग कर रहा हूं, इसलिए केवल उपयोगकर्ता नाम के साथ अनुमतियों को ट्रैक करना संभव नहीं है (उदाहरण के लिए प्रत्येक प्राधिकारी में समान उपयोगकर्ता नाम वाले अलग-अलग उपयोगकर्ता हो सकते हैं)। मैं निश्चित रूप से अनाम पहुंच का उपयोग नहीं कर रहा हूँ। – Dan

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

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