2009-12-28 39 views

Trả lời

0

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(); 
+0

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

5

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 
1

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.)

2
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. "

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