Xác thực trang web không liên quan đến xác thực giữa ASP và SQL. Các 'hình thức xác thực' thực sự không phải là một hình thức xác thực thực sự, chỉ là một vai trò và thành viên cho các ứng dụng ASP.Net, không liên quan đến cơ sở hạ tầng bảo mật.
Khi bạn chạy trang web của mình từ Visual Studio, bạn sẽ khởi chạy máy chủ web Visual Studio trong tài khoản của riêng bạn và máy chủ web này sẽ xác thực với SQL Server bằng NTLM/Kerberos như bạn, vì đang chạy dưới thông tin đăng nhập của bạn.
Khi bạn truy cập trang web từ trình duyệt, trang web của bạn đang chạy từ nhóm ứng dụng IIS với danh tính của nhóm ứng dụng đã nói, thường là người dùng cục bộ có tên IUSER _... Người dùng cục bộ này khi xác thực bằng SQL Máy chủ sử dụng NTLM/Kerberos sẽ xác thực là người dùng ẩn danh, vì tài khoản cục bộ không có ý nghĩa trên máy/miền từ xa lưu trữ SQL Server.
Giải pháp là thay đổi nhận dạng nhóm ứng dụng thành người dùng có thể xác thực tốt với Máy chủ SQL. Đối với điều này, máy lưu trữ IIS phải được nối vào cùng một tên miền với máy chủ lưu trữ của SQL Server (hoặc tên miền tin cậy miền máy chủ lưu trữ SQL Server) và bản sắc của hồ bơi ứng dụng phải được thay đổi thành tài khoản từ miền này. Vì vậy, nếu máy SQL Server chạy trên một máy tính tham gia vào FOO miền, sau đó:
- chắc chắn rằng máy IIS được gia nhập vào foo
- tạo một người dùng miền FOO \ MyWebApp
- thay đổi hồ bơi ứng dụng sắc để FOO \ MyWebApp
- thêm một tên đăng nhập SQL cho FOO \ MyWebApp
- cấp phép cần thiết trong SQL để FOO \ MyWebApp
Giải pháp thay thế sử dụng Xác thực SQL là không hợp lệ vì nhiều lý do (tiềm năng để hiển thị mật khẩu trong web.cấu hình, tiềm năng để lộ mật khẩu trong quá trình xác thực trên dây). Nếu máy chủ lưu trữ IIS không tham gia vào miền thì bạn có thể sử dụng tài khoản được nhân đôi (tài khoản cục bộ có cùng tên và mật khẩu trên cả máy chủ lưu trữ IIS và máy chủ lưu trữ SQL) nhưng điều đó cũng thiếu sót: không thể hoạt động với Kerberos, mật khẩu tài khoản có được giữ đồng bộ trên hai máy chủ, vv ..
Nguồn
2010-03-12 18:57:44
** phiên bản nào của SQL Server? 2000, 2005, 2008 ?? –
Máy chủ Sql 2005 – Brij