Tôi có một Ứng dụng VB.Net xác thực bằng cách sử dụng Người dùng Windows hiện tại mà không yêu cầu mật khẩu. Nó kiểm tra rằng người dùng này là thành viên của "MYDOMAIN \ ApplicationUsers" trước khi nó khởi động.Cách xác thực miền thư mục hoạt động mà ứng dụng của tôi đang chạy?
Cách kiểm tra xem đây có phải là miền thực và không phải tên miền khác có sử dụng cùng tên không? Có bất kỳ chứng chỉ hoặc khóa công khai nào để xác thực tại địa phương không? Tôi muốn kiểm tra xem ngoại tuyến này, không có máy hoặc cơ sở dữ liệu của bên thứ ba, v.v.
Trong System.DirectoryServices.ActiveDirectory Namespace là một số tin tưởng một phương thức xác thực nhưng dường như họ chỉ kiểm tra tin cậy tên miền và sử dụng tên miền chỉ có.
Bạn kiểm tra xem người dùng hiện tại có phải là thành viên của nhóm này ngay bây giờ không? Nếu bạn đang sử dụng truy vấn AD, bạn có thể sử dụng SID người dùng hiện tại và xác minh họ là thành viên của nhóm. – tHand
Tôi đang sử dụng Phương pháp [IsInRole (chuỗi)] (http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.applicationservices.user.isinrole (v = vs.80) .aspx) trên My.Application.User Object, sử dụng tham số chuỗi được đưa ra trong câu hỏi của tôi. Bằng cách sử dụng một chuỗi với tên của tên miền này là "dễ dàng" giả mạo bằng cách tạo ra một tên miền giả mạo. Kiểm tra SID là thú vị, họ không có băm thực hoặc cert nhưng nếu không có gì an toàn như vậy được nó. –
Nghe có vẻ như một vấn đề về gà/trứng. Có các chức năng .net để xác thực rằng người dùng là người mà họ nói là họ, nhưng điều đó thường liên quan đến việc yêu cầu họ nhập mật khẩu. Nếu bạn không muốn nhắc họ thì bạn phải dùng từ của họ (trong trường hợp này là DOMAIN). Ứng dụng này có nghĩa là di chuyển hoặc trong một tổ chức? Nếu trong một tổ chức của nó, bạn có thể sử dụng các manh mối khác để tìm ra một người dùng không trung thực. – tHand