Trong MVC, bạn thường sử dụng thuộc tính [Authorize]
để quản lý ủy quyền. Bộ điều khiển hoặc hành động cá nhân được mặc quần áo với thuộc tính đó sẽ yêu cầu người dùng được ủy quyền để truy cập chúng - tất cả các hành động khác sẽ có sẵn cho người dùng ẩn danh.
Nói cách khác, một cách tiếp cận danh sách đen, nơi các hành động yêu cầu ủy quyền được liệt kê đen cho người dùng ẩn danh sử dụng [Authorize]
- tất cả các hành động (không mặc quần áo với thuộc tính) sẽ có sẵn.
Cập nhật:
Với MVC4 một thuộc tính mới đã được giới thiệu, cụ thể là thuộc tính [AllowAnonymous]
. Cùng với thuộc tính [Authorize]
, bây giờ bạn có thể sử dụng phương pháp danh sách trắng thay thế. Cách tiếp cận danh sách trắng được thực hiện bằng cách thay đổi toàn bộ bộ điều khiển bằng thuộc tính [Authorize]
, để buộc ủy quyền cho tất cả các hành động trong bộ điều khiển đó. Sau đó, bạn có thể ăn mặc các hành động cụ thể, không nên yêu cầu ủy quyền, với thuộc tính [AllowAnonymous]
và do đó chỉ liệt kê trắng những hành động đó. Với cách tiếp cận này, bạn có thể tự tin rằng bạn không, do nhầm lẫn, quên ăn mặc một hành động với [Authorize]
, để nó có sẵn cho bất cứ ai, mặc dù nó không nên.
Mã của bạn sau đó có thể là một cái gì đó như thế này:
[Authorize]
public class UserController : Controller {
[AllowAnonymous]
public ActionResult LogIn() {
// This action can be accessed by unauthorized users
}
public ActionResult UserDetails() {
// This action can NOT be accessed by unauthorized users
}
}
Nguồn
2012-03-15 20:21:28
: nếu đây là lý do tại sao tôi không thể nhìn thấy Register.cshtml của mình. khi tôi chỉ cho phép xác thực biểu mẫu. – JED
@JED Không chắc chắn, bạn có thể cần bổ sung câu hỏi của bạn với một số ngữ cảnh khác để giải quyết vấn đề đó. Bạn có gặp bất kỳ lỗi nào hoặc điều gì sẽ xảy ra khi bạn cố truy cập vào chế độ xem đăng ký của mình? –
tôi nghĩ rằng tôi biết vấn đề là gì. tôi từ chối tất cả quyền truy cập của người dùng trong cấu hình của tôi – JED