2010-10-13 40 views
5

Tôi đang tạo gói phụ xác thực tùy chỉnh cho MSV1_0 cho Windows 7. Tôi đã sử dụng mẫu msvsubauth trong Windows SDK và tôi có 2 câu hỏi liên quan đến một số vấn đề mà tôi đang gặp phải:Triển khai gói xác thực cửa sổ tùy chỉnh

  1. Khi tôi đang cố gắng chỉ để chắc chắn rằng get thói quen của gọi và thiết lập thuộc tính Auth0 trong registry để gói của tôi và thêm một mã đơn giản ở phần cuối của Msv1_0SubAuthenticationRoutine tạo ra một tập tin:

    // 
    // Cleanup up before returning. 
    // 
    
    
    Cleanup: 
    hTestFile = CreateFile(
           TEXT("C:\\lsa\\lsa.txt"), 
           GENERIC_READ|GENERIC_WRITE, 0, 
           NULL, CREATE_ALWAYS, 
           FILE_ATTRIBUTE_NORMAL, NULL); 
    
    
    if(hTestFile != INVALID_HANDLE_VALUE) { 
         CloseHandle(hTestFile); 
    } 
    
    
    return Status; 
    
    
    } // Msv1_0SubAuthenticationRoutine 
    

    Dường như gói tuổi được viện dẫn bởi vì khi tôi nhập mật khẩu của tôi, tôi nhận được một thông báo lỗi từ các cửa sổ "tham số không đúng", đó là một dấu hiệu tốt. Nhưng tại sao tôi nhận được lỗi đó? khi mã chính xác được thực thi từ một tệp .exe riêng biệt, nó chạy hoàn hảo và tạo tệp văn bản thử nghiệm. Tôi đã kiểm tra các quyền và đặt "toàn quyền kiểm soát" cho "mọi người". Ý tưởng nào? SDK không đề cập chính xác loại LSA cách ly nào đang tạo cho mã trong các gói auth.

  2. Vấn đề thứ hai đang thử nghiệm AP. Hiện tại với mọi thay đổi tôi xây dựng lại thư viện, sao chép nó vào một máy ảo thử nghiệm và sau đó vào thư mục System32 và khởi động lại nó. Có cách nào dễ hơn để làm điều đó không?

Cảm ơn bạn trước!

+3

Điều này vẫn chưa được giải quyết? Tôi đang làm việc trên một dự án tương tự và tôi muốn biết cách thực hiện xác thực tùy chỉnh. Tôi đang bỏ phiếu cho câu hỏi của bạn. – tjameson

+0

Có, tại thời điểm đó tôi đã giải quyết được vấn đề đó. Vui lòng đặt câu hỏi về vấn đề cụ thể của bạn và tôi sẽ cố gắng giúp bạn nhiều nhất có thể. Hãy xem qua cyglsa - gói xác thực LSA là một phần của Cygwin. Nó rất hữu ích. –

+0

Đây là bài viết của tôi trên serverfault: http://serverfault.com/questions/254192/custom-handling-of-domain-user-profile-creation. Tôi tìm thấy một số thứ, nhưng có thể bạn đã gặp phải điều này khi bạn đang học về điều này. – tjameson

Trả lời

3

Debugging trong Winlogon và LSASS làm cho tiêu thụ gỡ lỗi thời gian nhất.

Để giảm bớt lỗi, bạn có thể viết AP proxy để xuất các chức năng tương tự. Khi được tải, bạn proxy_ap sẽ

  1. Sao chép AP thực từ vị trí đã biết đến vị trí tạm thời và.
  2. LoadLibrary DLL, GetProcThêm mọi thứ và chuyển tiếp mọi cuộc gọi mà nó nhận được tới tệp DLL mới tải.
  3. Coi chừng các thay đổi trong thư mục chứa AP ban đầu đã được sao chép từ
  4. Khi một sự thay đổi xảy ra (và nếu AP của bạn đã thay đổi) FreeLibrary và goto bước 2

Nhưng bạn cần phải giữ một nắm chặt trên những gì xảy ra trên mục tiêu phát triển của bạn, bởi vì việc xử lý chuyển đổi dll trong khi xử lý các yêu cầu đến từ nhiều luồng có thể trở thành một cơn ác mộng tồi tệ hơn là những gì bạn đang cố giải quyết.

LogonUI.exe bắt đầu một phiên bản mới mỗi lần, nhưng LSASS.exe đã tồn tại lâu.

+ Xem mã nguồn CVSNT (http://cvsnt.sourcearchive.com/). Họ có một AP khá đẹp để thực hiện su. Chạy mẫu trong tài khoản hệ thống cục bộ với psexec -s (từ Microsoft/SysInternals pstools suite)

1

Có thể sự cố của bạn là Mọi người chỉ bao gồm người dùng được xác thực? Đây chỉ là một phỏng đoán.

Tôi khuyên bạn nên sử dụng Trình theo dõi quy trình để theo dõi các tin nhắn Truy cập bị từ chối hoặc cho đường dẫn của bạn. Thật tuyệt vời khi gỡ lỗi các vấn đề về quyền/đường dẫn của tất cả các loại.

Nếu bạn gặp phải vấn đề ở "Mở khóa Workstation" hoặc màn hình "Thay đổi mật khẩu", và nó không ngăn cản bạn đăng nhập, điều này nên được dễ dàng để làm - cài đặt nó chạy, tái tạo vấn đề, đăng nhập lại và hey mau.

Nếu không, bạn có thể phải dùng đến thủ thuật như thực hiện con đường mã chỉ cho các tài khoản người dùng nhất định, trên thứ N thử vv

Các vấn đề liên quan