5

मुझे एएसपी.NET वेबसाइट पर एक HTML पृष्ठ से पीडीएफ उत्पन्न करने का कार्य सामना करना पड़ रहा है। (कुछ उपयोगकर्ताओं/प्रिंट अच्छी तरह से दूर बचा सकता है)विंडोज प्रमाणीकरण और WKHTMLToPDF बनाना अच्छा

मैंने पाया कि WKHTMLToPDF काम बहुत अच्छी तरह से इस को देखा होने करता है:

Calling wkhtmltopdf to generate PDF from HTML

हालांकि, मैं एक समस्या है। हमारी वेबसाइट एक इंट्रानेट साइट है और विंडोज प्रमाणीकरण का उपयोग करता है। मैं अपने क्रेडेंशियल में WKHTMLToPDF को --username और --password का उपयोग करके पास कर सकता हूं और खुद को प्रदर्शित कर सकता हूं कि वेब पेज जेनरेट किया गया है जैसा आप उम्मीद करेंगे।

समस्या यह है: हमारे सिस्टम में आने वाले प्रत्येक अलग उपयोगकर्ता के लिए क्या करना है? मैं कई संभावित समाधानों के बारे में सोच सकता हूं जो काम कर सकते हैं/नहीं कर सकते हैं और मैं उम्मीद कर रहा था कि कोई मुझे कुछ राय/मार्गदर्शन दे सकता है क्योंकि मुझे लगता है कि मेरे शोध के अंत में आ गया है।

संभावित समाधान:

  1. वहाँ ASP.NET में किसी भी तरह से है कि मैं WKHTMLToPDF में पारित करने के लिए उपयोगकर्ता क्रेडेंशियल्स से उपयोगकर्ता नाम और पासवर्ड निकाल सकते हैं है? मुझे संदेह है कि इसका जवाब "नहीं और समझदार कारणों से है"
  2. क्या प्रक्रिया को चलाने और उपयोगकर्ता प्रमाण-पत्रों के माध्यम से पार करना संभव है? मैं देख सकता हूं कि प्रक्रिया पर उपयोगकर्ता नाम/पासवर्ड सेट करना संभव है (हालांकि मुझे नहीं पता कि मैं इसे क्रेडेंशियल से कैसे पास करूंगा क्योंकि पासवर्ड प्रकट नहीं होता है)। शायद प्रक्रिया के लिए सीधे प्रमाण पत्र पारित करने के लिए एक और तरीका है?
  3. मैं एक अलग पीडीएफ जेनरेटर वेबसाइट बना सकता हूं जो विंडोज प्रमाणीकरण का उपयोग नहीं करता है। मैं फिर सुरक्षित वेबसाइट से एचटीएमएल/सीएसएस/छवियों को एक साझा निर्देशिका में बंद कर सकता हूं और फिर उपयोगकर्ताओं को पीडीएफ जेनरेटर वेबसाइट पर रीडायरेक्ट करने के लिए एचटीएमएल से पीडीएफ जेनरेट करने के लिए रीडायरेक्ट कर सकता हूं (और पीडीएफ के बाद एचटीएमएल आदि को साफ कर दूंगा) उत्पन्न किया था)।

मुझे संदेह है कि 3 समाधान है कि मैं दृढ़ता से समाप्त हो जाऊंगा लेकिन चूंकि यह अनिवार्य रूप से प्रमाणीकरण मुद्दे से निपटने के लिए एक बड़ा कामकाज है, मैं बेहतर सुझावों के लिए बहुत खुला हूं या 1 या 2 पर मदद करता हूं!

उत्तर

2

आप web.config में प्रतिरूपण सेट कर सकते हैं:

http://msdn.microsoft.com/en-us/library/aa292118%28v=vs.71%29.aspx

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

आपको ध्यान रखना चाहिए कि आपके द्वारा चलाए जाने वाले कुछ भी सामान्य कॉन्फ़िगरेशन के तहत ऐप पूल के प्रमाण-पत्रों पर जा रहे हैं। आप ऐप पूल के लिए खाता बदल सकते हैं। यह आपको ऐप पूल चलाने वाले उपयोगकर्ता से केवल एक्सेस की अनुमति देकर चीजों को बंद रखने की अनुमति दे सकता है।

अन्य विकल्पों में एक अन्य ऐप को मुख्य ऐप से अलग किया जा सकता है जो प्रतिरूपण का उपयोग करता है। प्रतिरूपण का उपयोग करने के लिए अपने पूरे ऐप को परिवर्तित करने से प्रबंधित करना आसान हो सकता है। (मैं अपनी परियोजना के विवरण नहीं है, तो यह यहाँ एक ठोस सिफारिश करने के लिए कठिन है।)

+0

यह काफी है कि मैं क्या जरूरत नहीं करता है, लेकिन यह मैं पर मेरे प्रोटोटाइप में उपयोग कर रहा हूँ दृष्टिकोण के लिए भिन्न नहीं है क्षण। अनिवार्य रूप से मुझे एक डमी विंडोज खाता मिला है जिसका मैं प्रमाणीकरण उद्देश्यों के लिए उपयोग कर रहा हूं। इसलिए मैं web.config में एन्क्रिप्टेड रूप में खाता क्रेडिटल्स संग्रहीत करता हूं और wkhtmltopdf को कॉल करते समय उनका उपयोग करता हूं। गौरवशाली नहीं है लेकिन ऐसा लगता है और इसलिए मैं इसका उपयोग कर सकता हूं ... –

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