Chuỗi kết nối bằng Windows xác thực


133

Tôi đang tạo một trang web, nhưng trong cơ sở dữ liệu tôi sử dụng xác thực windows.

Tôi biết rằng bạn sử dụng điều này để xác thực 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>

Làm cách nào để sửa đổi điều này để làm việc với xác thực windows?

Câu trả lời:


192

Thay thế tên người dùng và mật khẩu bằng Integrated Security=SSPI;

Vì vậy, chuỗi kết nối phải là

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

1
Tôi biết bạn có thể đặt người dùng AD cụ thể vào nhóm ứng dụng (ứng dụng web). bạn có thể làm tương tự cho ứng dụng windows không?
dùng384080

6
Persist Security Infocó lẽ không cần thiết: stackoverflow.com/a/2010059/1869660
Sphinxxx

@ Heads5150: Có thể là không có chuỗi kết nối trong dự án của tôi? tui bỏ lỡ điều gì vậy. tôi đã tìm kiếm trong toàn bộ giải pháp của mình để tìm chuỗi kết nối như trên. tôi không thể tìm thấy bất kỳ. Một cái mà tôi thành lập đã được nhận xét trong bản phát hành web và cấu hình web .. tôi đang sử dụng vs express 2013 với db cục bộ.
Vini

19

Đối với giải pháp chính xác sau nhiều giờ:

  1. Mở tập tin cấu hình
  2. Thay đổi chuỗi kết nối bằng cách sau

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

  1. Thay đổi YOU_SERVER_NAME với tên máy chủ hiện tại của bạn và lưu
  2. Mở Trình quản lý IIS
  3. Tìm tên của nhóm ứng dụng mà trang web hoặc ứng dụng web đang sử dụng
  4. Nhấp chuột phải và chọn Cài đặt nâng cao
  5. Từ Cài đặt nâng cao trong Mô hình quy trình thay đổi danh tính thành tài khoản tùy chỉnh và thêm chi tiết Quản trị viên máy chủ của bạn, vui lòng xem hình ảnh đính kèm:

nhập mô tả hình ảnh ở đây

Hy vọng điều này sẽ giúp.


2
Giải pháp này hiệu quả với tôi, nhưng tôi đã tự hỏi làm thế nào để thay đổi về nhận dạng này ảnh hưởng đến hành vi của ứng dụng, về mặt bảo mật?
CesarB

Tất cả các hành động được thực hiện bởi quy trình sẽ được chạy với quyền / đặc quyền của tài khoản đó. Đừng cấp nhiều quyền hơn mức cần thiết. Một tài khoản dịch vụ chuyên dụng sẽ được khuyến khích. Cũng khuyên bạn nên kiểm tra DISA IIS và Windows Server STIG: public.cyber.mil/stigs/doads
duct_tape_coder

12

Để kết nối với cơ sở dữ liệu máy chủ sql thông qua xác thực Windows về cơ bản cần máy chủ nào bạn muốn kết nối, tên cơ sở dữ liệu của bạn, thông tin bảo mật tích hợp và tên nhà cung cấp.

Về cơ bản công việc này:

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

Thiết an ninh tích hợp lĩnh vực thực sự có nghĩa là về cơ bản bạn muốn tiếp cận cơ sở dữ liệu thông qua xác thực Windows, nếu bạn thiết lập lĩnh vực này sai xác thực Windows sẽ không làm việc.

Nó cũng hoạt động khác nhau tùy theo nhà cung cấp mà bạn đang sử dụng.

  • SqlClient cả Tích hợp bảo mật = true; hoặc Tích hợp bảo mật = SSPI; đang làm việc.

  • OleDb đó là Bảo mật tích hợp = SSPI;

  • Odbc đó là Trusted_Connection = yes;
  • OracleClient đó là Bảo mật tích hợp = có;

Tích hợp bảo mật = true sẽ ném ngoại lệ khi được sử dụng với nhà cung cấp OleDb.


6

Đây là ngắn hơn và hoạt động

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

Thông tin bảo mật liên tục không cần thiết

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.