2012-11-20 48 views
6

Mã của tôi sử dụng:WebAuthenticationBroker.AuthenticateAsync ném ngoại lệ

WebAuthenticationResult WebAuthenticationResult = await 
WebAuthenticationBroker.AuthenticateAsync( 
             WebAuthenticationOptions.None, 
             StartUri, 
             EndUri); 

giống như Microsoft Web authentication broker sample

Nó được sử dụng để làm việc trên máy tính để bàn của tôi và trên máy tính bảng của tôi (Surface) nhưng bây giờ nó không được làm việc trên máy tính để bàn của tôi . Nó ném ngoại lệ

The process terminated unexpectedly. (Exception from HRESULT: 0x8007042B) 

Nó hoạt động trên máy tính bảng và trên các máy tính để bàn windows-8 khác.

Bất kỳ đề xuất nào có thể gây ra ngoại lệ này?

+0

Dường như WebAuthenticationBroker chỉ hoạt động trong WinRT. – tofutim

+0

Vấn đề có thể là nó chỉ hoạt động trên chuỗi giao diện người dùng. – BenCr

+0

Nếu bạn chưa thực hiện, có nhật ký sự kiện cụ thể cho WebAutheticationBroker. Xem này ... http://msdn.microsoft.com/en-us/library/windows/desktop/jj658959(v=vs.85).aspx – BenCr

Trả lời

0

Tôi không chắc chắn nhưng tôi nghĩ rằng WebAuthBroker cần phải được gọi trên Chủ đề giao diện người dùng vì nó đang cố gắng thay đổi một cái gì đó cho giao diện người dùng của bạn theo cách hiển thị cho bạn cửa sổ bật lên.

0

WebAuthenticationBroker.AuthenticateAsync khởi động quá trình AuthHost.exe dưới dạng con của quá trình ứng dụng và HRESULT được trả về bởi ngoại lệ cho biết AuthHost.exe không thành công bất ngờ. Khi được khởi chạy, AuthHost cố gắng thanh lọc cookie, nội dung và lịch sử từ các thùng chứa không phải sso và nếu nó không thành công, nó sẽ bị tắt. Ở phía bên kia, một ứng dụng Windows chạy trong một sandbox với một tập hợp các quyền khác với một ứng dụng máy tính để bàn. Do đó, Internet Explorer hoặc ứng dụng máy tính để bàn thực hiện SSO có thể hoạt động bình thường, nhưng AuthHost sẽ không được phép thực hiện yêu cầu dọn dẹp khi bắt đầu. Trong trường hợp của tôi, người dùng đang chạy ứng dụng là một phần của nhóm đã được cấp quyền truy cập đầy đủ vào thư mục nhưng bản thân người dùng không có quyền truy cập tệp trực tiếp. Tuy nhiên, quyền của nhóm đã bị tước đi trong hộp cát ứng dụng. Trong thiết lập mặc định, các quyền được định cấu hình đúng cách và không có vấn đề gì xảy ra. Tuy nhiên, trong trường hợp người dùng chuyển các tệp Internet tạm thời sang một vị trí mới, có thể có một tập quyền truy cập tệp khác một chút. Các phản ứng khác trên thread này cho thấy rằng xóa và tái tạo hồ sơ giúp. Thao tác này đặt lại cài đặt Tệp Internet Tạm thời trong Internet Explorer thành mặc định, gián tiếp hỗ trợ đề xuất của tôi.