Build app with abp modulezero

Bài viết ở đây

Module zero

Moddule Zero tổng thể

Giới thiệu

Microsoft ASP.NET Identity Framework

Giấy phép

Cuộc hội thoại

Quản lý vai trò

Vai trò mặc định (S)

Quản lý người dùng

Người thuê nhiều người

Quản lý cài đặt

Nhật ký kiểm tra

Giới thiệu

Modulde Zero, đạt được các khái niệm cơ bản của khuôn khổ ASP.NET Boilerplate, chẳng hạn như quản lý người thuê nhà (multi-tenant), vai trò quản lý, quản lý người dùng, cho phép phiên (hệ thống cấp phép), được thành lập để quản lý và các bản ghi kiểm toán.

Microsoft ASP.NET Identity Framework

Modulde Zero dựa trên khung định danh ASP.NET của Microsoft. Nó mở rộng người quản lý vai trò và người dùng và sử dụng kho chung để triển khai lưu trữ vai trò và người dùng. Nó hỗ trợ bất kỳ ORM có thể được sử dụng bởi ASP.NET (chẳng hạn như Entity Framework và NHibernate).

Khi mô đun zero mở rộng khung định danh, nó có nhiều tính năng độc đáo, như được mô tả bên dưới.

Giấy phép

Trong hệ thống ASP.NET Boilerplate, người dùng được ủy quyền theo sự cho phép. Quyền là các đặc quyền cụ thể cho một tính năng cụ thể của một ứng dụng. Nó có thể là "đi đến một trang web cụ thể" hoặc "thực hiện các hoạt động nhất định trên trang" hoặc nhiều quyền truy cập chung hơn (chẳng hạn như tệp excel của ứng dụng đã tải xuống). Xem tệp ủy quyền để biết thêm thông tin.

Cuộc hội thoại

Mô-đun zero triển khai IAbpSession. Bạn có thể tiêm, bạn có thể tiêm nó bất cứ lúc nào, bất cứ nơi nào để có được ID của người dùng hiện tại và người thuê nhà.

Quản lý vai trò

Vai trò được sử dụng để nhóm quyền. Khi người dùng có vai trò, họ sẽ có tất cả các quyền cho vai trò đó. Trong mô-đun zero, vai trò có thể là động hoặc tĩnh:

Vai trò tĩnh: Vai trò tĩnh có tên đã biết (chẳng hạn như "quản trị viên") và không thể thay đổi (chúng tôi có thể thay đổi tên hiển thị). Nó tồn tại khi hệ thống được khởi động và không thể bị xóa. Vì vậy, chúng ta có thể viết mã dựa trên tên vai trò tĩnh.

Vai trò động (không tĩnh): Chúng tôi có thể tạo vai trò động sau khi triển khai. Sau đó, chúng tôi có thể cấp quyền cho vai trò, chúng tôi có thể chỉ định một số người dùng của vai trò, chúng tôi có thể xóa nó. Chúng tôi không thể biết tên vai trò năng động trong thời gian phát triển.

Vai trò mặc định (S)

Một hoặc nhiều vai trò có thể được đặt làm vai trò mặc định. Vai trò mặc định được gán cho người dùng mới / đã đăng ký làm mặc định. Đây không phải là thuộc tính thời gian phát triển có thể được đặt hoặc thay đổi sau khi triển khai.

Quản lý người dùng

Người dùng là người có thể đăng nhập vào ứng dụng và thực hiện một số hành động nhất định dựa trên quyền của họ.

Người dùng có thể có không hoặc nhiều vai trò. Người dùng sẽ kế thừa công đoàn của các quyền của tất cả các vai trò của mình. Ngoài ra, chúng tôi có thể đặt quyền người dùng cụ thể. Cài đặt quyền dành riêng cho người dùng ghi đè quyền được đặt bởi vai trò.

Người thuê nhiều người

Wikipedia: đa thuê nhà dùng để chỉ một trường hợp duy nhất của phần mềm đang chạy trên một máy chủ, và các phần mềm kiến ​​trúc dịch vụ nhiều người thuê nhà (khách hàng).

ASP.NET Boilerplate cung cấp hỗ trợ module-zero cho đa thuê. Do đó, chúng tôi có thể có một ứng dụng được triển khai cho một môi trường duy nhất và được sử dụng bởi nhiều khách hàng (người thuê).

Người thuê nhà có thể có vai trò, người dùng và cài đặt riêng. Nó không giới hạn vai trò, người dùng và cài đặt. Chúng tôi có thể triển khai IMustHaveTenant và IMayHaveTenant cho các đối tượng thuê cụ thể. ASP.NET Bolierplate tự động ẩn (bộ lọc) các thực thể người thuê khác khi người dùng thuê nhà đăng nhập. Tham khảo tài liệu cho bộ lọc dữ liệu.

Quản lý cài đặt

Mô-đun zero thực hiện kho lưu trữ cài đặt ASP.NET Boilerplater để lưu trữ / truy xuất các thiết lập đến / từ cơ sở dữ liệu. Xem tài liệu thiết lập để biết chi tiết.

Nhật ký kiểm tra

Module zero thực hiện hệ thống log kiểm toán cho ASP.NET Bolierplate. Vì vậy, tất cả người dùng tự động ghi lại hoạt động vào cơ sở dữ liệu.

Project structure

  • .Core project is for domain/business layer (entities, domain services...)

  • .Application project is for application layer (DTOs, application services...)

  • .EntityFramework project is for EF Core integration (abstracts EF Core from other layers).

  • .Web project is for ASP.NET MVC layer.

  • .Tests project is for unit and integration tests (up to application layer, excluding web layer)

  • .Web.Tests project is for ASP.NET Core integrated tests (complete integration test including the web layer).

Last updated