sách gpt4 ăn đã đi

Sơ đồ cấp phép dựa trên Asp.Net MVC

In lại Tác giả: qq735679552 Thời gian cập nhật: 29-09-2022 22:32:09 37 4
mua khóa gpt4 giày nike

CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.

Bài viết blog CFSDN này là một sơ đồ cấp phép dựa trên Asp.Net MVC được tác giả sưu tầm và biên soạn. Nếu bạn quan tâm đến bài viết này, hãy nhớ thích nó.

1.Cấu trúc dữ liệu
Sơ đồ cấp phép dựa trên Asp.Net MVC
Mad_Popedom là bảng quyền, Control ghi tên bộ điều khiển và Action ghi tên hành động.
Mad_Role là bảng vai trò.

2. Việc triển khai kiểm soát quyền sử dụng phương pháp AOP tương đối đơn giản và sử dụng Bộ lọc của MVC để triển khai nó. Mã như sau.

Sao chép mãMã này như sau:

sử dụng System.Collections.Generic; 
sử dụng System.Web.Mvc; 
sử dụng Madnet.Model.MadAdmin; 
sử dụng Madnet.BLL.MadAdmin; 

không gian tên Madnet.Controllers.MadAdmin 

lớp công khai SupportFilterAttribute: ActionFilterAttribute 

bool riêng tư _IsLogin = true; 
///  
/// Bạn có cần đăng nhập không? 
///
 
công khai bool IsLogin 

bộ 

_IsLogin = giá trị; 

lấy 

nếu (System.Configuration.ConfigurationManager.AppSettings["IsLogin"] != null) 

bool.TryParse(System.Configuration.ConfigurationManager.AppSettings["IsLogin"].ToString(), ra _IsLogin); 

trả về _IsLogin; 


công khai ghi đè void OnActionExecuting(ActionExecutingContext filterContext) 

chuỗi controllerName = (chuỗi)filterContext.RouteData.Values["controller"]; 
chuỗi actionName = (chuỗi)filterContext.RouteData.Values["action"]; 

nếu (IsLogin && filterContext.HttpContext.Session["Login_User"] == null) 

filterContext.HttpContext.Response.Redirect(new UrlHelper(filterContext.RequestContext).Action("Đăng nhập", "Mặc định")); 
filterContext.Result = new EmptyResult(); 

nếu không thì nếu (IsLogin && filterContext.HttpContext.Session["Login_User"] != null) 

Người dùng Mad_User = filterContext.HttpContext.Session["Login_User"] là Mad_User; 
nếu (!user.is_super) 

nếu (!GetPopedom(người dùng).Tồn tại(p => p.Controller_Name == controllerName.ToLower() && p.Action_Name == actionName.ToLower())) 

filterContext.HttpContext.Response.Write("Không được phép"); 
filterContext.Result = new EmptyResult(); 






///  
/// Nhận tất cả các hành động mà người dùng hiện tại có quyền thực hiện 
///
 
///  
công khai List GetPopedom(Mad_User người dùng) 

Danh sách ats = new Danh sách(); 
Danh sách pops = Mad_PopedomBLL.GetPopedombyUser(user.user_id); 
foreach (Mad_Popedom pop trong pops) 

ats.Add(new AtModel() { Controller_Name = pop.Control, Action_Name = pop.Action }); 

trả lại ats; 




  。

Để giải thích, đoạn mã trên trước tiên lấy Hành động điều khiển mà người dùng đã đăng nhập có thể chạy trước khi thực thi nó, sau đó so sánh nó với Hành động điều khiển hiện cần được thực thi. Nếu nó tồn tại, nó sẽ vượt qua, nếu không thì nó sẽ thực hiện. không có quyền thực hiện.

3. Thêm quyền cho các hành động Để đơn giản, tôi đã tạo một thư viện lớp riêng cho lớp Controller. Ưu điểm là khi thêm quyền cho vai trò sau này, chúng ta không cần nhập thủ công mà chỉ cần phản ánh dll. Như trong hình, bất kỳ chức năng nào yêu cầu kiểm soát quyền chỉ cần thêm thuộc tính [SupportFilter] Tất nhiên, phương thức này chỉ có thể được kiểm soát ở cấp độ Hành động.

4. Việc thêm quyền vào một vai trò tương đối đơn giản. Bạn chỉ cần liên kết vai trò đó với các quyền. Ở đây tôi sử dụng dll lớp Trình điều khiển phản chiếu để triển khai nó. Web.config Global.asax.cs Madnet.Controllers.Test là dll của lớp Controller Test là tên Controller, chỉ mục là tên Action, chọn Action mà role2 có thể truy cập và gửi nó vào cơ sở dữ liệu. Hình này chỉ ra rằng role2 có quyền truy cập vào Test1Controller, nhưng không có quyền truy cập vào Test2Controller và Test3Controller.

5. Sau khi hoàn thành 4 bước trên là việc kiểm soát quyền cơ bản đã hoàn tất. Trên cơ sở này, các nhóm người dùng, người dùng, menu và các hoạt động quản lý khác có thể được thêm vào để hiện thực hóa sự kết hợp miễn phí của "quyền-vai trò người dùng". Một chương trình phụ trợ phổ quát đơn giản có lẽ giống như thế này.

Cuối cùng, bài viết này về sơ đồ cấp phép dựa trên Asp.Net MVC kết thúc tại đây. Nếu bạn muốn biết thêm về sơ đồ cấp phép dựa trên Asp.Net MVC, vui lòng tìm kiếm các bài viết về CFSDN hoặc tiếp tục duyệt các bài viết liên quan. ủng hộ blog của tôi trong tương lai! .

37 4 0
qq735679552
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress