Username:
Password:
} Thiết lập URL bắt đầu kiểm thử ứng dụng Như với tất dự án ví dụ, dùng Visual Studio để bắt đầu với URL gốc cho ứng dụng đoán URL dựa tập tin chỉnh sửa Chọn lọc Properties từ menu Project Studio Visual, chuyển sang tab Web kiểm tra tùy chọn trang cụ thể phần Bắt đầu hành động Bạn không cần phải cung cấp giá trị Chỉ cần kiểm tra tùy chọn đủ Nếu bạn bắt đầu ứng dụng ví dụ, bạn nhận phản ứng thể hình 18-1 Figure 18-1 Running the example application Sử dụng lọc Bạn thấy ví dụ lọc Chương 12, áp dụng ủy quyền cho phương pháp hành động điều khiển quản trị SportsStore Tôi muốn phương pháp hành động sử dụng người dùng xác thực thân, trình bày cho tơi với lựa chọn phương pháp tiếp cận Tơi kiểm tra tình trạng ủy quyền yêu cầu phương pháp hành động, thể Liệt kê 18-5 Listing 18-5 Kiểm tra cách rõ ràng phương pháp Authorization Action namespace SportsStore.WebUI.Controllers { public class AdminController : Controller { // instance variables and constructor public ViewResult Index() { if (!Request.IsAuthenticated) { FormsAuthentication.RedirectToLoginPage(); } // rest of action method } public ViewResult Create() { if (!Request.IsAuthenticated) { FormsAuthentication.RedirectToLoginPage(); } // rest of action method } public ViewResult Edit(int productId) { if (!Request.IsAuthenticated) { FormsAuthentication.RedirectToLoginPage(); } // rest of action method } // other action methods } } You can see that there is a lot of repetition in this approach, which is why I decided to use a filter instead, as shown in Listing 18-6 Listing 18-6 Applying a Filter namespace SportsStore.WebUI.Controllers { [Authorize] public class AdminController : Controller { // instance variables and constructor public ViewResult Index() { // rest of action method } public ViewResult Create() { // rest of action method } public ViewResult Edit(int productId) { // rest of action method } // other action methods } } Bộ lọc thuộc tính NET mà thêm bước bổ sung cho đường ống xử lý yêu cầu Tôi sử dụng lọc Authorize Liệt kê 18 6, có tác dụng tương tự tất kiểm tra trùng lặp Liệt kê 18-5 Giới thiệu loại Lọc Các MVC Framework hỗ trợ năm loại khác lọc Mỗi phép bạn giới thiệu logic điểm khác trình xử lý yêu cầu Các loại lọc mô tả Bảng 18-2 Table 18-2 MVC Framework Filter Types Trước MVC Framework gọi hành động, kiểm tra định nghĩa phương pháp để xem có thuộc tính mà thực giao diện liệt kê Bảng 18-2 Nếu vậy, thời điểm thích hợp q trình xử lý u cầu, phương pháp xác định giao diện gọi Khung bao gồm lớp thuộc tính mặc định mà thực giao diện lọc Tôi cho bạn thấy làm để sử dụng lớp mặc định sau chương Mẹo MVC giới thiệu giao diện mới, IoverrideFilter, mà mô tả Overriding lọc phần sau chương Lớp ActionFilterAttribute thực hai giao diện IActionFilter IResultFilter Lớp trừu tượng, mà buộc bạn phải cung cấp thực Các lớp AuthorizeAttribute HandleErrorAttribute có tính hữu ích sử dụng mà không cần tạo lớp dẫn xuất Áp dụng lọc để điều khiển phương pháp hành động Bộ lọc áp dụng cho phương pháp hành động cá nhân toàn điều khiển Trong Liệt kê 186, áp dụng lọc để Authorize lớp AdminController, có tác dụng tương tự áp dụng vào phương pháp hành động điều khiển, Ví dụ 18-7 Listing 18-7 Applying a Filter to Action Methods Individually namespace SportsStore.WebUI.Controllers { public class AdminController : Controller { // instance variables and constructor [Authorize] public ViewResult Index() { // rest of action method } [Authorize] public ViewResult Create() { // rest of action method } // other action methods } } Bạn áp dụng nhiều lọc pha trộn kết hợp mức độ mà chúng áp dụng, là, cho dù chúng áp dụng để điều khiển phương pháp hành động cá nhân Liệt kê 18-8 cho thấy ba lọc khác sử dụng Listing 18-8 Applying Multiple Filters in a Controller Class [Authorize(Roles="trader")] // applies to all actions public class ExampleController : Controller { [ShowMessage] [OutputCache(Duration=60)] // public ActionResult Index() { // action method body } // applies to just this action applies to just this action } Một số lọc bảng liệt kê lấy thông số Tôi cho bạn thấy làm công việc mô tả loại khác lọc Lưu ý Nếu bạn xác định lớp sở tùy chỉnh cho điều khiển bạn, lọc áp dụng cho lớp sở ảnh hưởng đến lớp học có nguồn gốc Sử dụng Bộ lọc Authorization/ cho phép Bộ lọc cho phép chạy sau lọc xác thực, trước lọc hành động trước phương pháp hành động gọi Như tên cho thấy, lọc thực thi sách cấp phép bạn, đảm bảo phương pháp hành động gọi người sử dụng phê duyệt Có mối quan hệ có phần liên quan việc xác thực ủy quyền lọc dễ dàng để g iải thích bạn hiểu cách ủy quyền lọc làm việc Tơi giải thích mối quan hệ Sử dụng Bộ lọc xác thực phần sau chương Bộ lọc ủy quyền thực giao diện IAuthorizationFilter, thể Liệt kê 18-9 Listing 18-9 The IAuthorizationFilter Interface namespace System.Web.Mvc { public interface IAuthorizationFilter { 10 ... thông tin cần thiết Trong Liệt kê 18- 18, bạn nhìn thấy tơi kết hợp GoogleAuth Ủy quyền cho lọc để hạn chế truy cập vào hành động Danh sách điều khiển Home Listing 18- 18 Combining Authentication and... toàn điều khiển Trong Liệt kê 186 , áp dụng lọc để Authorize lớp AdminController, có tác dụng tương tự áp dụng vào phương pháp hành động điều khiển, Ví dụ 18- 7 Listing 18- 7 Applying a Filter to Action... lọc mô tả Bảng 18- 2 Table 18- 2 MVC Framework Filter Types Trước MVC Framework gọi hành động, kiểm tra định nghĩa phương pháp để xem có thuộc tính mà thực giao diện liệt kê Bảng 18- 2 Nếu vậy, thời