2009-08-31 42 views
19

Tôi muốn biết các phương pháp hay nhất để sử dụng bảo mật dựa trên vai trò trong MVC:
cách đảm bảo hành động của bạn và làm cho chúng có thể truy cập được bằng vai trò cụ thể?Bảo mật dựa trên vai trò asp.net mvc

Trả lời

23

Nếu bạn thiết lập nhà cung cấp thành viên ASP.Net chính xác, bạn có thể dễ dàng sử dụng [Authorize] -attribute để chỉ định quyền truy cập cho các vai trò hoặc người dùng khác nhau.

Để yêu cầu người dùng đăng nhập, sử dụng:

[Authorize] 
public class SomeController : Controller 

// Or 
[Authorize] 
public ActionResult SomeAction() 

Để hạn chế truy cập cho vai trò cụ thể, sử dụng:

[Authorize(Roles = "Admin, User")] 
public class SomeController : Controller 

// Or 
[Authorize(Roles = "Admin, User")] 
public ActionResult SomeAction() 

Và để hạn chế truy cập cho người dùng cụ thể, sử dụng:

[Authorize(Users = "Charles, Linus")] 
public class SomeController : Controller 

// Or 
[Authorize(Users = "Charles, Linus")] 
public ActionResult SomeAction() 
+1

Điều gì sẽ xảy ra nếu bạn muốn vai trò/quyền của bạn được năng động trong DB? –

+0

@JoePhilllips Tạo thuộc tính tùy chỉnh và xử lý onAuthorize. – nagytech

+0

Tôi thích trang trí phương thức Ủy quyền. Đây là câu hỏi tiếp theo: nếu chúng tôi có nhóm thư mục hoạt động được tạo để xử lý ngoại lệ đối với quy tắc .. ví dụ: một nhóm có tên "MyApp_AccessDenied" .. có cách nào để sử dụng nó ... tức là phiên bản phủ định của trang trí Ủy quyền ... như trang trí DenyAuthorize không? – Bkwdesign

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