Windows प्रमाणीकरण का उपयोग करके कनेक्शन स्ट्रिंग


134

मैं एक वेबसाइट बना रहा हूं, लेकिन डेटाबेस में मैं विंडोज़ प्रमाणीकरण का उपयोग करता हूं।

मुझे पता है कि आप इसका उपयोग SQL प्रमाणीकरण के लिए करते हैं

<connectionStrings> 
    <add name="NorthwindContex" 
       connectionString="data source=localhost;
       initial catalog=northwind;persist security info=True; 
       user id=sa;password=P@ssw0rd" 
       providerName="System.Data.SqlClient" /> 
</connectionStrings>

विंडोज़ प्रमाणीकरण के साथ काम करने के लिए मैं इसे कैसे संशोधित करूं?

जवाबों:


192

उपयोगकर्ता नाम और पासवर्ड बदलें Integrated Security=SSPI;

तो कनेक्शन स्ट्रिंग होना चाहिए

<connectionStrings> 
<add name="NorthwindContex" 
   connectionString="data source=localhost;
   initial catalog=northwind;persist security info=True; 
   Integrated Security=SSPI;" 
   providerName="System.Data.SqlClient" /> 
</connectionStrings> 

1
मुझे पता है कि आप एक विशिष्ट विज्ञापन उपयोगकर्ता को पूल (वेब ​​ऐप) पर सेट कर सकते हैं। क्या आप विंडोज़ ऐप के लिए भी ऐसा कर सकते हैं?
user384080

6
Persist Security Infoशायद जरूरत नहीं है: stackoverflow.com/a/2010059/1869660
स्फिंक्सएक्स

@ हेड्स ५१५०: क्या यह संभव है कि मेरी परियोजना में कोई कनेक्शन तार नहीं है? क्या मैं कुछ भूल रहा हूँ। मैं ऊपर के रूप में एक कनेक्शन स्ट्रिंग खोजने के लिए अपने पूरे समाधान के माध्यम से खोज की है। मुझे कोई नहीं मिला। मेरे द्वारा स्थापित वेब रिलीज़ और वेब कॉन्फ़िगर में टिप्पणी की गई थी .. मैं स्थानीय डीबी के साथ बनाम एक्सप्रेस 2013 का उपयोग कर रहा हूं।
विनी

19

कई घंटों के बाद सही समाधान के लिए:

  1. कॉन्फ़िगरेशन फ़ाइल खोलें
  2. निम्नलिखित के साथ कनेक्शन स्ट्रिंग बदलें

<add name="umbracoDbDSN" connectionString="data source=YOUR_SERVER_NAME;database=nrc;Integrated Security=SSPI;persist security info=True;" providerName="System.Data.SqlClient" />

  1. बदलाव अपने वर्तमान सर्वर नाम के साथ अपने_SERVER_NAME को और सहेजें
  2. IIS प्रबंधक खोलें
  3. उस एप्लिकेशन पूल का नाम खोजें जिसे वेबसाइट या वेब एप्लिकेशन उपयोग कर रहा है
  4. राइट-क्लिक करें और उन्नत सेटिंग्स चुनें
  5. प्रक्रिया मॉडल के तहत उन्नत सेटिंग्स से कस्टम खाते में पहचान बदलें और अपने सर्वर व्यवस्थापक विवरण जोड़ें, कृपया संलग्न चित्र देखें:

यहाँ छवि विवरण दर्ज करें

आशा है कि यह मदद करेगा।


2
इस समाधान ने मेरे लिए काम किया, लेकिन मैं सोच रहा था कि पहचान पर यह परिवर्तन सुरक्षा के मामले में आवेदन के व्यवहार को कैसे प्रभावित करता है?
सीजर बी

प्रक्रिया द्वारा निष्पादित सभी क्रियाओं को उस खाते की अनुमतियों / विशेषाधिकारों के साथ चलाया जाएगा। आवश्यकता से अधिक अनुमति न दें। एक समर्पित सेवा खाता उचित होगा। DISA IIS और Windows सर्वर STIG
duct_tape_coder

12

Windows प्रमाणीकरण के माध्यम से एक sql सर्वर डेटाबेस से कनेक्ट करने के लिए मूल रूप से किस सर्वर को आप कनेक्ट करना चाहते हैं, आपके डेटाबेस का नाम, एकीकृत सुरक्षा जानकारी और प्रदाता का नाम क्या है।

मूल रूप से यह काम करता है:

<connectionStrings>      
<add name="MyConnectionString"
         connectionString="data source=ServerName;
   Initial Catalog=DatabaseName;Integrated Security=True;"
         providerName="System.Data.SqlClient" />
</connectionStrings> 

इंटीग्रेटेड सिक्योरिटी फील्ड को सही सेट करने का मतलब है कि मूल रूप से आप विंडोज ऑथेंटिकेशन के जरिए डेटाबेस तक पहुंचना चाहते हैं, अगर आप इस फील्ड को सेट करते हैं तो झूठा विंडोज ऑथेंटिकेशन काम नहीं करेगा।

यह भी अलग काम कर रहा है कि आप किस प्रदाता का उपयोग कर रहे हैं।

  • SqlClient दोनों एकीकृत सुरक्षा = सच; या एकीकृत सुरक्षा = एसएसपीआई; काम कर रहा है।

  • ओलेडब यह एकीकृत सुरक्षा = एसएसपीआई है;

  • Odbc यह Trusted_Connection = Yes है;
  • OracleClient यह एकीकृत सुरक्षा = हाँ है;

एकीकृत सुरक्षा = जब ओलेडब प्रदाता के साथ प्रयोग किया जाता है तो सच एक अपवाद फेंकता है।


6

यह छोटा है और काम करता है

<connectionStrings>      
<add name="DBConnection"
             connectionString="data source=SERVER\INSTANCE;
       Initial Catalog=MyDB;Integrated Security=SSPI;"
             providerName="System.Data.SqlClient" />
</connectionStrings> 

पर्सिस्टेंट सिक्योरिटी इंफो की जरूरत नहीं

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.