Tôi có một ứng dụng web ASP.NET được viết bằng VB.NET. Một phần của ứng dụng thực hiện cuộc gọi AJAX đến một tệp ASMX nội bộ, từ đó thực hiện cuộc gọi đến một dịch vụ web từ xa chỉ là một tệp ASMX duy nhất. Thông thường điều này hoạt động tốt và đã được triển khai một vài lần và hoạt động tốt. Tuy nhiên, một khách hàng đang nhận được thông báo từ cuộc gọi AJAX:Yêu cầu HTTP không được ủy quyền với lược đồ xác thực ứng dụng khách 'Ẩn danh'. Tiêu đề xác thực nhận được từ máy chủ là 'NTLM'
Yêu cầu HTTP không được ủy quyền với lược đồ xác thực ứng dụng khách 'Chưa xác định'. Tiêu đề xác thực nhận được từ máy chủ là 'NTLM'.
Tôi đã xóa một số lượng lớn các trang web đang tìm cách sửa lỗi này nhưng dường như tôi không tìm thấy câu trả lời nào phù hợp với tôi.
Tôi đã không thể sao chép lỗi trên máy chủ thử nghiệm của mình, cũng giống như máy khách, Win2003 IIS6.
Dịch vụ web từ xa được triển khai trên Windows 2008 r2 - IIS7.5. Dịch vụ từ xa được triển khai chỉ sử dụng xác thực ‘Ẩn danh’. Triển khai ứng dụng khách được thiết lập với Ẩn danh và "Xác thực Windows tích hợp". Tôi đã thử thay đổi các cấp xác thực trên cả hai triển khai nhưng không thể sao chép vấn đề. Gần nhất tôi đã đến là khi tôi đặt xác thực IIS dịch vụ từ xa thành
Yêu cầu HTTP không được ủy quyền với lược đồ xác thực ứng dụng khách 'Ntlm'. Tiêu đề xác thực nhận được từ máy chủ là ''.
Trong file web.config tham chiếu đến các dịch vụ từ xa là:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="SVCMappingSoap" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
<message clientCredentialType="UserName" algorithmSuite="Default"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://svc.website.com/services/myService.asmx" binding="basicHttpBinding" bindingConfiguration="SVCMappingSoap" contract="SVCMappingService.SVCMappingSoap" name="SVCMappingSoap"/>
</client>
</system.serviceModel>
Tôi đã cố gắng thay đổi một số thiết lập trong phần <security>
nhưng vẫn không thể bắt chước được.
Tôi phát hiện ra rằng máy khách đang sử dụng máy chủ proxy. Vô hiệu hóa dịch vụ web từ xa dẫn đến thông báo lỗi tương tự trên máy khách vì vậy có vẻ như tất cả các sự cố đều bị hỏng đối với thiết lập mạng của họ. Tôi đã cấu hình ràng buộc để sử dụng proxy của họ dẫn đến thông báo - 'Máy chủ từ xa trả về một phản hồi không mong muốn: (407) Yêu cầu xác thực proxy (ISA Server yêu cầu ủy quyền để thực hiện yêu cầu. Truy cập bộ lọc Web Proxy bị từ chối.) .' Tôi đã chuyển vấn đề cho bất kỳ ai chịu trách nhiệm về thiết lập mạng của khách hàng. – SausageFingers
Xin chào @Fly_Trap, bạn có thể mô tả cách proxy này giữa bạn và điểm cuối của bạn đã ảnh hưởng đến ủy quyền hay không. Tôi có một vấn đề tương tự ngay bây giờ, có vẻ như bạn có thể giúp tôi. –
@Johnny_D, rất tiếc là tôi không biết proxy được định cấu hình như thế nào. – SausageFingers