2012-08-23 82 views
5

Tôi có 2 dịch vụ wcf được lưu trữ trên IIS trên cùng một máy. Dịch vụ A được khách hàng gọi và sử dụng BasicHttpBinding với bảo mật giao thông và NTLM credentialtype. Dịch vụ A cần gọi dịch vụ B cũng được lưu trữ trên IIS nhưng sử dụng WsHttpBinding với bảo mật giao thông và NTLM credentialtype.Chuyển thông tin đăng nhập từ một dịch vụ wcf sang một dịch vụ wcf khác

IIS được định cấu hình để sử dụng xác thực cửa sổ được tích hợp.

Nỗ lực đầu tiên tôi nhận được tin nhắn 403 cấm:

System.ServiceModel.Security.MessageSecurityException : The HTTP request was forbidden with client authentication scheme 'Ntlm'. 
System.Net.WebException: The remote server returned an error: (403) Forbidden. 

này là bình thường vì khi tôi thực hiện một cuộc gọi từ dịch vụ từ A đến B dịch vụ bản sắc của hồ bơi ứng dụng được sử dụng.

Trong nỗ lực thứ hai của tôi, tôi đã cố gắng mạo danh cuộc gọi đến dịch vụ B nhưng sau đó vấn đề là tất cả mã trong hoạt động được thực hiện theo tài khoản người gọi. Tài khoản này không có quyền ACL trên máy chủ và việc cung cấp các quyền này không phải là một tùy chọn. Các lỗi sau đây được đăng:

System.IO.FileLoadException : Could not load file or assembly 'System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The handle is invalid. (Exception from HRESULT: 0x80070006 (E_HANDLE)) 

Làm thế nào tôi có thể giải quyết việc này không làm thay đổi an ninh của ACL hoặc bản sắc bơi ứng dụng?

Trả lời

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