Chúng tôi đang viết một dịch vụ WCF có tích hợp với Dynamics CRM 2016 Online. Tôi đang cố gắng để xác thực bằng cách sử dụng ADAL, sử dụng phương pháp AcquireTokenAsync()
. Vấn đề là, nó sẽ hiển thị một hộp bật lên, nhắc người dùng về thông tin đăng nhập. Đương nhiên, ứng dụng của chúng tôi là một dịch vụ, đây không phải là những gì chúng tôi muốn. Chúng tôi đã tìm kiếm một cách để xác thực mà không có hộp bật lên này.C# ADAL AcquireTokenAsync() không có hộp bật lên
Có một lớp được gọi là AuthenticationContextIntegratedAuthExtensions
, được cho là hỗ trợ "lưu lượng người dùng/mật khẩu". Nó có phương thức duy nhất AcquireTokenAsync
, ngăn chặn hộp bật lên, nhưng chúng tôi không tìm thấy bất kỳ cách nào để chuyển mật khẩu cho nó. Khi chạy chỉ với tên người dùng, nó làm tăng ngoại lệ về cơ bản là "không có mật khẩu nào được cung cấp".
Có ai có ý tưởng nào về cách giải quyết vấn đề này không? Thậm chí không phải là ADAL. Chỉ cần một cái gì đó để có được mã thông báo OAuth.
Có. Trường mật khẩu được lấy ra vì bất kỳ lý do gì. Trong thực tế, chúng tôi đã không tìm thấy bất kỳ lớp hoặc phương pháp nào có liên quan đến mật khẩu. Một số lớp có một hàm tạo chấp nhận tên người dùng, UserIdentifier, cho một. Mặc dù mục đích của nó dường như tự động hoàn thành, thay vì bất kỳ nỗ lực nào trong xác thực im lặng. – eltaro
Phải, tôi không chắc chắn tại sao nó bị xóa (blog này http://www.cloudidentity.com/blog/2014/07/08/using-adal-net-to-authenticate-users-via-usernamepassword/ là một trong những tôi nhớ đọc khi nó lần đầu tiên được giới thiệu), nhưng nếu bạn sử dụng phiên bản cụ thể ở trên, bạn có thể xác thực mà không có một popup và mã thông báo sẽ làm việc cho các yêu cầu chống lại CRM. –
Dường như chúng tôi sẽ phải sử dụng giải pháp của bạn. Cái tôi đăng ở đây không cho phép chúng tôi truy cập vào CRM, đưa ra lỗi 401. – eltaro