Làm cách nào tôi có thể trả lại HTTP 401 từ dịch vụ WCF?Trả lại 401 từ dịch vụ WCF
Trả lời
Tùy thuộc vào khi bạn cần phải làm việc kiểm tra quyền truy cập, bạn có thể làm điều đó trong một HttpModule
sử dụng giống như sau:
HttpContext context = HttpContext.Current;
context.Response.StatusCode = 401;
context.Response.End();
Không chính xác ... bạn có thể làm điều này với BẤT CỨ của xHttpBindings. – WayneC
Nếu bạn đang lập trình một REST dịch vụ nó có thể được thực hiện theo cách này:
private IWebOperationContext context = new WebOperationContextWrapper(WebOperationContext.Current); // Get the context
context.OutgoingResponse.StatusCode = HttpStatusCode.Unauthorized; // Set the 401
Nếu bạn đang sử dụng nhà máy WebServiceHost2 từ WCF REST của Starter Kit, bạn cũng có thể ném cụ WebProtocolException
và chỉ định một mã HTTP trở lại:
alt text http://www.robbagby.com/wp-content/uploads/effective-error-handling-with-wcf-rest/image_thumb_5.png alt text http://www.robbagby.com/wp-content/uploads/effective-error-handling-with-wcf-rest/image_thumb_10.png alt text http://www.robbagby.com/wp-content/uploads/effective-error-handling-with-wcf-rest/image_thumb_12.png
Ngoài ra còn có một HttpStatusCode.Unauthorized
tương ứng với mã 401 trạng thái.
Xem bài đăng trên blog tuyệt vời của Rob Bagby Effective Error Handling with WCF REST để biết thêm chi tiết về các cách xác định mã trả lại HTTP khác nhau. (Ảnh chụp màn hình từ bài viết trên blog của Rob - ông xứng đáng tất cả các tín dụng cho việc này.)
throw new WebFaultException(System.Net.HttpStatusCode.Unauthorized);
Ghi chú: "MSDN: Khi sử dụng một thiết bị đầu cuối WCF REST (WebHttpBinding và WebHttpBehavior hoặc WebScriptEnablingBehavior) mã trạng thái HTTP trên phản ứng Tuy nhiên, WebFaultException có thể được sử dụng với các điểm cuối không phải REST và hoạt động giống như một FaultException thông thường. "
- 1. trả lại xdocument từ dịch vụ wcf
- 2. Cách trả lại Json từ Dịch vụ WCF?
- 3. Dịch vụ WCF: Trả lại các đối tượng tùy chỉnh
- 4. Dịch vụ WCF Trả lại "Phương thức không được phép"
- 5. Tại sao dịch vụ WCF tự lưu trữ của tôi trả lại 403 Cấm, thay vì 401 Không được phép?
- 6. Làm cách nào để trả lại JSON sạch từ một Dịch vụ WCF?
- 7. Không thể trả lại lớp tùy chỉnh từ Dịch vụ dữ liệu WCF
- 8. WCF REST Service - 401 Unauthorized
- 9. Sử dụng dịch vụ REST từ WCF
- 10. Dịch vụ WCF và Dịch vụ Windows
- 11. Làm thế nào để trả lại HttpContext.Current.Cache từ WCF?
- 12. Trả lại JSON được bao bọc trong chức năng gọi lại từ dịch vụ web REST WCF
- 13. Dịch vụ WCF trả về lỗi định dạng JSON
- 14. Dịch vụ web Prestashop trả lại JSON
- 15. Tiêu thụ dịch vụ WCF từ Oracle
- 16. Chuyển thông tin đăng nhập từ một dịch vụ wcf sang một dịch vụ wcf khác
- 17. Dịch vụ RIA .NET/Dịch vụ WCF
- 18. WCF JSON Dịch vụ trả XML trên lỗi
- 19. Dịch vụ web còn lại trả lại 404
- 20. Sự khác biệt giữa Dịch vụ WCF, Dịch vụ WCF RIA và Dịch vụ Dữ liệu WCF
- 21. Dịch vụ WCF thay vì Dịch vụ Web ASMX?
- 22. Điều chỉnh dịch vụ WCF
- 23. Trả về định dạng JSON và XML từ dịch vụ web .NET 3.5 WCF (REST)
- 24. Dịch vụ WCF trả về một mảng từ điển <string, object>
- 25. Điều chỉnh dịch vụ WCF
- 26. Dịch vụ web wcf json
- 27. Triển khai Dịch vụ WCF
- 28. Dịch vụ WCF với Qt?
- 29. Override trong dịch vụ WCF
- 30. Dịch vụ WCF và Luồng
Đang thực hiện điều [OperationContract, WebInvoke] [Service]? –