2009-06-19 34 views
9

Có chức năng Win32 nào mà tôi có thể gọi để hiển thị hộp thoại đăng nhập Windows không?Hộp thoại đăng nhập cho ứng dụng khách của Windows

Ví dụ: Internet Explorer và Trình khám phá nhóm của Visual Studio đều hiển thị hộp thoại thông tin xác thực khi truy cập trang web - làm cách nào tôi có thể hiển thị hộp thoại đó?

Tôi có ứng dụng khách Windows .NET sử dụng thông tin nhận dạng người dùng Windows đã đăng nhập khi liên lạc với các dịch vụ web. Các dịch vụ sử dụng ID người dùng đó để xác định ai đang gọi dịch vụ và quyết định những gì họ có quyền xem.

Tôi muốn thêm lệnh cho phép người dùng hiện tại thực hiện hiệu quả "chạy dưới dạng", nơi họ có thể nhập tên người dùng/mật khẩu của người dùng khác và chúng tôi có ứng dụng hoạt động như họ.

Tôi có thể tạo hộp thoại tùy chỉnh và sử dụng hàm LoginUser(), nhưng tôi muốn sử dụng một cái gì đó "chính thức".

+0

Tôi biết có một API cho một hộp thoại Login tiêu chuẩn, bởi vì tôi đã nhìn thấy các ứng dụng khác sử dụng nó. Nhưng tôi không có may mắn tìm thấy nó. Tôi tìm thấy một số tham chiếu đến một hàm WNetVerifyPassword API, nhưng nó không được ghi trên msdn hoặc trên pinvoke.net. –

Trả lời

8

Bạn có thể sử dụng chức năng CredUIPromptForCredentials API

Xem thêm here

+0

Tìm thấy tuyệt vời. P/invoke.net có ở đây: http://www.pinvoke.net/default.aspx/credui/CredUIPromptForCredentialsW.html. Điều đó cộng với LogonUser là đủ để làm đăng nhập tôi cần. Cảm ơn! –

+0

Bạn có thể sử dụng SecureString để lưu trữ mật khẩu bằng cách tạo một SecureString và thay đổi tham số phương thức pinvoke để sử dụng IntPtr và gọi Marshal.SecureStringToBSTR (passwordSecureString) –

0

Tôi nghĩ bạn đang mắc kẹt khi tạo hộp thoại của riêng mình. Nó không phải là khó để làm cho nó trông chính thức mặc dù.

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