Windows Kimlik Doğrulaması kullanan bağlantı dizesi


134

Bir web sitesi oluşturuyorum, ancak veritabanında Windows kimlik doğrulamasını kullanıyorum.

Bunu SQL kimlik doğrulaması için kullandığınızı biliyorum

<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>

Bunu Windows kimlik doğrulamasıyla çalışacak şekilde nasıl değiştirebilirim?

Yanıtlar:


192

Kullanıcı adını ve şifreyi şununla değiştirin: Integrated Security=SSPI;

Dolayısıyla bağlantı dizesi

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

1
Belirli bir AD kullanıcısını uygulama havuzuna (web uygulaması) ayarlayabileceğinizi biliyorum. aynısını windows uygulaması için yapabilir misin?
user384080

6
Persist Security Infomuhtemelen gerekli değildir: stackoverflow.com/a/2010059/1869660
Sphinxxx

@ Heads5150: Projemde hiç bağlantı dizisi olmaması mümkün mü? bir şey mi kaçırıyorum Yukarıdaki gibi bir bağlantı dizesi bulmak için tüm çözümümde arama yaptım. bulamadım Benim kurduğum web sürümünde ve web yapılandırmasında yorumlanmıştı .. yerel db ile vs express 2013 kullanıyorum.
Vini

19

Saatler sonra doğru çözüm için:

  1. Yapılandırma dosyasını açın
  2. Aşağıdaki ile bağlantı dizesini değiştirin

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

  1. Değişim Your_Server_Name mevcut sunucu adıyla ve kaydetme
  2. IIS Yöneticisini açın
  3. Web sitesinin veya web uygulamasının kullandığı uygulama havuzunun adını bulun
  4. Sağ tıklayın ve Gelişmiş ayarları seçin
  5. İşlem Modeli altındaki Gelişmiş ayarlardan Kimliği Özel hesaba değiştirin ve Sunucu Yöneticisi ayrıntılarınızı ekleyin, lütfen ekli resimlere bakın:

görüntü açıklamasını buraya girin

Umarım bu yardımcı olur.


2
Bu çözüm benim için çalıştı, ancak kimlik üzerindeki bu değişikliğin güvenlik açısından uygulamanın davranışını nasıl etkilediğini merak ediyordum.
CesarB

İşlem tarafından gerçekleştirilen tüm eylemler, o hesabın izinleri / ayrıcalıkları ile çalıştırılacaktır. Gerekenden daha fazla izin vermeyin. Özel bir hizmet hesabı tavsiye edilebilir. DISA IIS ve Windows Server STIG'e
duct_tape_coder

12

Windows kimlik doğrulaması ile bir sql sunucu veritabanına bağlanmak için temel olarak hangi sunucuya bağlanmak istediğinize, veritabanı adınıza, Entegre Güvenlik bilgilerinize ve sağlayıcı adınıza ihtiyaç vardır.

Temelde bu işe yarar:

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

Integrated Security alanını true olarak ayarlamak , temelde veritabanına Windows kimlik doğrulaması yoluyla ulaşmak istediğiniz anlamına gelir, bu alanı yanlış ayarlarsanız Windows kimlik doğrulaması çalışmayacaktır.

Ayrıca, kullandığınız sağlayıcıya göre farklı çalışıyor.

  • SqlClient hem Entegre Güvenlik = true; veya IntegratedSecurity = SSPI; çalışıyor.

  • OleDb bunun ise Integrated Security = SSPI;

  • Odbc bu Trusted_Connection = evet;
  • OracleClient , Entegre Güvenliktir = evet;

Integrated Security = true, OleDb sağlayıcısı ile kullanıldığında bir istisna atar.


6

Bu daha kısa ve işe yarıyor

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

Kalıcı Güvenlik Bilgisi gerekli değil

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.