Tôi đã cố gắng sử dụng LogonUser(...)
để nhận mã thông báo truy cập cho tài khoản người dùng, như trong this MSDN sample.Tại sao LogonUser (...) không hoạt động cho tài khoản miền?
// Call LogonUser to obtain a handle to an access token.
bool returnValue = LogonUser(userName, domainName, Console.ReadLine(),
LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT,
out safeTokenHandle);
Khi tôi chạy mẫu (với quyền Administrator) nó hoạt động tốt khi đưa ra một lĩnh vực .
và một tên tài khoản người dùng và mật khẩu của địa phương, nhưng không có vấn đề gì tôi làm tôi nhận được mã lỗi thất bại năm 1326 (Logon : tên người dùng hoặc mật khẩu không xác định) nếu tôi cố gắng sử dụng tài khoản miền. Tôi nhận được kết quả tương tự nếu tôi nhập rác cho tên miền, điều này khiến tôi tự hỏi liệu nó có thực sự liên lạc với DC hay không.
Điều gì có thể ngăn việc này hoạt động?
Điều đó có thể là do nhiều điều không may. Máy có được kết nối với miền không? Người dùng miền có được phép đăng nhập vào máy đó không? Cài đặt DNS có được định cấu hình chính xác không? (Tôi đã nhìn thấy một bài báo Citrix cho rằng đây có thể là một vấn đề.). Bài viết sau có một số thông tin về những gì đang xảy ra khi bạn nhập rác cho tên miền - https://groups.google.com/group/microsoft.public.dotnet.languages.csharp/msg/dccfbf8b76120401?pli=1 –
Có bạn xác nhận rằng điều này làm việc mà không có cuộc gọi Console.ReadLine() (ví dụ như cung cấp một mật khẩu như là một chuỗi trực tiếp)? –
Nó không tạo ra sự khác biệt khi mật khẩu xuất phát - đó là một chuỗi khi nó được chuyển tới 'LogonUser'. – GraemeF