String koneksi menggunakan Windows Authentication

133

Saya membuat situs web, tetapi dalam database saya menggunakan otentikasi windows.

Saya tahu Anda menggunakan ini untuk otentikasi 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>

Bagaimana cara memodifikasi ini agar berfungsi dengan otentikasi windows?

MDC
sumber

Jawaban:

192

Ganti nama pengguna dan kata sandi dengan Integrated Security=SSPI;

Jadi string koneksi seharusnya

<connectionStrings> 
<add name="NorthwindContex" 
   connectionString="data source=localhost;
   initial catalog=northwind;persist security info=True; 
   Integrated Security=SSPI;" 
   providerName="System.Data.SqlClient" /> 
</connectionStrings> 
kepala5150
sumber
1
saya tahu Anda dapat mengatur pengguna AD tertentu ke kumpulan aplikasi (aplikasi web). dapatkah Anda melakukan hal yang sama untuk aplikasi windows?
user384080
6
Persist Security Infomungkin tidak diperlukan: stackoverflow.com/a/2010059/1869660
Sphinxxx
@ heads5150: Apakah mungkin bahwa tidak ada string koneksi di proyek saya? apakah saya melewatkan sesuatu. Saya telah mencari seluruh solusi saya untuk menemukan koneksi string seperti di atas. saya tidak dapat menemukan. Yang saya dirikan berkomentar di rilis web dan konfigurasi web .. saya menggunakan vs express 2013 dengan db lokal.
Vini
19

Untuk solusi yang benar setelah berjam-jam:

  1. Buka file konfigurasi
  2. Ubah string koneksi dengan yang berikut ini

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

  1. Ubah YOUR_SERVER_NAME dengan nama server Anda saat ini dan simpan
  2. Buka Manajer IIS
  3. Temukan nama kumpulan aplikasi yang digunakan situs web atau aplikasi web
  4. Klik kanan dan pilih Pengaturan lanjutan
  5. Dari Pengaturan lanjutan di bawah Model Proses, ubah Identitas ke akun Kustom dan tambahkan detail Admin Server Anda, silakan lihat gambar terlampir:

masukkan deskripsi gambar di sini

Semoga ini bisa membantu.

Ahmed Na.
sumber
2
Solusi ini berhasil untuk saya, tetapi saya bertanya-tanya bagaimana perubahan pada identitas ini memengaruhi perilaku aplikasi, dalam hal keamanan?
CesarB
Semua tindakan yang dilakukan oleh proses akan dijalankan dengan izin / hak istimewa dari akun itu. Jangan berikan izin lebih dari yang dibutuhkan. Akun layanan khusus akan disarankan. Akan merekomendasikan memeriksa DISA IIS dan Windows Server STIG juga: public.cyber.mil/stigs/downloads
duct_tape_coder
12

Untuk menghubungkan ke database server sql melalui otentikasi Windows pada dasarnya memerlukan server mana yang ingin Anda sambungkan, apa nama database Anda, info Keamanan Terpadu dan nama penyedia.

Pada dasarnya ini bekerja:

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

Mengatur bidang Keamanan Terpadu benar berarti pada dasarnya Anda ingin mencapai basis data melalui otentikasi Windows, jika Anda menetapkan bidang ini salah otentikasi Windows tidak akan berfungsi.

Ini juga berfungsi berbeda sesuai dengan penyedia yang Anda gunakan.

  • SqlClient keduanya Keamanan Terintegrasi = benar; atau IntegratedSecurity = SSPI; sedang bekerja.

  • OleDb itu adalah Keamanan Terpadu = SSPI;

  • Odbc, itu Trusted_Connection = ya;
  • OracleClient itu adalah Keamanan Terpadu = ya;

Keamanan Terpadu = true melempar pengecualian ketika digunakan dengan penyedia OleDb.

nzrytmn
sumber
6

Ini lebih pendek dan berfungsi

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

Info Keamanan Persist tidak diperlukan

Carlos E
sumber