亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

C#企業(yè)后臺(tái)管理系統(tǒng)從零搭建:技術(shù)選型、RBAC權(quán)限與避坑指南

C#企業(yè)后臺(tái)管理系統(tǒng)從零搭建:技術(shù)選型、RBAC權(quán)限與避坑指南 簡(jiǎn)介這份資源是一套基于C#與ASP.NET構(gòu)建的完整企業(yè)后臺(tái)管理系統(tǒng)源碼面向具備一定.NET基礎(chǔ)、希望深入理解B/S架構(gòu)企業(yè)級(jí)應(yīng)用開發(fā)的開發(fā)者與學(xué)習(xí)者。系統(tǒng)采用Visual Studio 2012開發(fā)涵蓋用戶管理、權(quán)限控制、數(shù)據(jù)報(bào)表、流程審批等典型模塊并附數(shù)據(jù)庫(kù)建表腳本與字段說(shuō)明便于理解數(shù)據(jù)模型與業(yè)務(wù)邏輯。壓縮包共909個(gè)文件約104.86MB以190個(gè)cs源碼、168個(gè)dll程序集、103個(gè)xml配置、73個(gè)js腳本、65個(gè)cshtml視圖及22個(gè)css樣式為主另含sql腳本、csproj工程文件與sln解決方案完整呈現(xiàn)項(xiàng)目分層結(jié)構(gòu)。目前已有2298人學(xué)習(xí)下載。通過(guò)研讀源碼與數(shù)據(jù)庫(kù)設(shè)計(jì)讀者可掌握ASP.NET MVC分層開發(fā)、權(quán)限映射、緩存優(yōu)化、異常處理與日志記錄等實(shí)踐思路是學(xué)習(xí)企業(yè)后臺(tái)系統(tǒng)架構(gòu)與二次開發(fā)的實(shí)用素材。1. 從零搭一套 C# 企業(yè)后臺(tái)管理系統(tǒng)先想清楚它到底管什么很多人搜「C#完整的企業(yè)后臺(tái)管理系統(tǒng)」腦子里想的是找一份能直接跑起來(lái)的源碼解壓、改連接字符串、F5然后登錄進(jìn)去看到菜單樹和用戶列表。但真做過(guò)交付的人都知道后臺(tái)管理系統(tǒng)從來(lái)不是「一套代碼」而是一組能力的集合身份認(rèn)證、權(quán)限模型、組織架構(gòu)、字典配置、日志審計(jì)、定時(shí)任務(wù)、文件管理、數(shù)據(jù)導(dǎo)入導(dǎo)出。這些能力在任何一個(gè)企業(yè)項(xiàng)目里都會(huì)重復(fù)出現(xiàn)所以才會(huì)有人想把它沉淀成一套可復(fù)用的底座。這篇文章不講某一份具體源碼怎么改而是按一線交付的路徑把「用 C# 搭一套企業(yè)后臺(tái)管理系統(tǒng)」這件事拆開技術(shù)棧怎么選、權(quán)限模型怎么設(shè)計(jì)、數(shù)據(jù)訪問(wèn)層怎么寫、前后端怎么對(duì)接、部署和排錯(cuò)怎么做。適合兩類人一類是剛?cè)腴T C#、想通過(guò)一個(gè)完整項(xiàng)目把語(yǔ)言特性和工程實(shí)踐串起來(lái)的新手另一類是做過(guò)多套業(yè)務(wù)系統(tǒng)、想整理一套自己團(tuán)隊(duì)底座的老手。讀完你應(yīng)該能判斷這套方案值不值得投入以及第一步該動(dòng)哪里。2. 技術(shù)選型.NET 版本、ORM 與前端形態(tài)怎么定2.1 后端框架與 .NET 版本的選擇理由企業(yè)后臺(tái)管理系統(tǒng)的后端絕大多數(shù)場(chǎng)景下我會(huì)選 ASP.NET Core Web API而不是 MVC 帶 Razor 頁(yè)面。原因很直接后臺(tái)系統(tǒng)通常要同時(shí)服務(wù) Web 端、可能的桌面客戶端比如 C# 上位機(jī)、WinForm 工具和移動(dòng)端審批接口層獨(dú)立出來(lái)復(fù)用性最高。Razor Pages 適合純服務(wù)端渲染的中小型后臺(tái)但一旦前端要換成 Vue 或 React接口就得重寫一遍。.NET 版本上新項(xiàng)目直接上 .NET 8 的 LTS。別再用 .NET Framework 4.x 起新項(xiàng)目了除非你要對(duì)接的第三方庫(kù)比如某些老的金蝶云客戶端組件、老版本大恒相機(jī) SDK只有 Framework 版本。.NET 8 在性能、容器化、跨平臺(tái)部署上的優(yōu)勢(shì)是實(shí)打?qū)嵉腟ystem.Text.Json的源生成器對(duì)接口序列化性能提升明顯。一個(gè)常見的糾結(jié)是要不要用 ABP Framework 這類重型框架我的經(jīng)驗(yàn)是團(tuán)隊(duì)小于 5 人、業(yè)務(wù)不復(fù)雜時(shí)ABP 的學(xué)習(xí)成本和約定約束反而拖慢進(jìn)度團(tuán)隊(duì)大、模塊多、需要多租戶時(shí)ABP 的模塊化和依賴注入體系能省很多重復(fù)設(shè)計(jì)。中間路線是自己搭一套輕量分層下面會(huì)給結(jié)構(gòu)。2.2 ORM 選型EF Core 還是 Dapper這是被問(wèn)得最多的問(wèn)題。我的判斷標(biāo)準(zhǔn)是寫操作復(fù)雜、領(lǐng)域模型重的用 EF Core讀多寫少、報(bào)表查詢多的用 Dapper 補(bǔ)位。實(shí)際項(xiàng)目里兩者共存是最舒服的。EF Core 的優(yōu)勢(shì)是變更跟蹤、遷移、LINQ 查詢適合用戶、角色、權(quán)限這類關(guān)系明確的實(shí)體。但后臺(tái)系統(tǒng)里總有幾個(gè)「列表頁(yè)要 join 七八張表還要分頁(yè)排序」的查詢用 EF Core 寫出來(lái)要么性能差要么表達(dá)式樹繞到看不懂。這種查詢我直接用 Dapper 寫 SQL返回 DTO。// 混合用法寫操作走 EF Core復(fù)雜查詢走 Dapper public class UserService { private readonly AppDbContext _db; // EF Core 上下文 private readonly IDbConnection _conn; // Dapper 用的連接 public UserService(AppDbContext db, IDbConnection conn) { _db db; _conn conn; } // 寫EF Core 負(fù)責(zé)變更跟蹤和事務(wù) public async Task CreateAsync(User user) { _db.Users.Add(user); await _db.SaveChangesAsync(); } // 讀復(fù)雜聯(lián)表查詢用 DapperSQL 可控、性能可預(yù)期 public async TaskIEnumerableUserListDto QueryListAsync(int page, int size) { const string sql SELECT u.Id, u.UserName, r.RoleName, d.DeptName FROM Users u LEFT JOIN UserRoles ur ON ur.UserId u.Id LEFT JOIN Roles r ON r.Id ur.RoleId LEFT JOIN Departments d ON d.Id u.DeptId WHERE u.IsDeleted 0 ORDER BY u.Id DESC OFFSET Offset ROWS FETCH NEXT Size ROWS ONLY; return await _conn.QueryAsyncUserListDto(sql, new { Offset (page - 1) * size, Size size }); } }參數(shù)說(shuō)明Offset和Size是分頁(yè)參數(shù)SQL Server 2012 以上支持OFFSET...FETCH如果數(shù)據(jù)庫(kù)是 MySQL改成LIMIT Size OFFSET Offset。注意 Dapper 的連接要和 EF Core 用同一個(gè)連接字符串事務(wù)邊界要統(tǒng)一否則會(huì)出現(xiàn)「EF 提交了、Dapper 沒(méi)提交」的臟數(shù)據(jù)。2.3 前端形態(tài)分離還是服務(wù)端渲染后臺(tái)系統(tǒng)的前端2024 年之后我基本不再推薦純 Razor 了。Vue 3 Element Plus 或 React Ant Design 是主流接口用 Web API。理由后臺(tái)系統(tǒng)的表格、表單、彈窗交互密集組件庫(kù)能省掉大量手寫 DOM 的活。如果你團(tuán)隊(duì)只有 C# 背景、沒(méi)有前端那退一步用 Blazor Server 也能接受但要注意 Blazor Server 依賴長(zhǎng)連接網(wǎng)絡(luò)抖動(dòng)時(shí)體驗(yàn)會(huì)掉。選型沒(méi)有絕對(duì)對(duì)錯(cuò)關(guān)鍵是別在項(xiàng)目中期換前端形態(tài)。我見過(guò)一個(gè)項(xiàng)目先用 Razor 寫了三個(gè)月后來(lái)要接移動(dòng)端被迫把頁(yè)面邏輯全部重寫成接口血淚經(jīng)驗(yàn)。3. 權(quán)限模型與數(shù)據(jù)庫(kù)設(shè)計(jì)RBAC 落地時(shí)最容易含糊的地方3.1 RBAC 三張表還是五張表后臺(tái)系統(tǒng)的權(quán)限標(biāo)準(zhǔn)做法是 RBAC基于角色的訪問(wèn)控制。最簡(jiǎn)模型是三張表用戶、角色、用戶角色關(guān)聯(lián)。但企業(yè)系統(tǒng)里通常要五張用戶、角色、權(quán)限菜單/按鈕、角色權(quán)限關(guān)聯(lián)、用戶角色關(guān)聯(lián)。區(qū)別在于「權(quán)限」這一層要不要獨(dú)立成表。我的建議是獨(dú)立。因?yàn)楹笈_(tái)系統(tǒng)的權(quán)限粒度往往要細(xì)到按鈕級(jí)比如「用戶管理」菜單下有「新增」「編輯」「刪除」「導(dǎo)出」四個(gè)操作這些如果只靠角色硬編碼判斷后期加一個(gè)操作就要改代碼。獨(dú)立成權(quán)限表后權(quán)限碼如user:create存庫(kù)前端按權(quán)限碼控制按鈕顯隱后端按權(quán)限碼做接口鑒權(quán)。-- 核心五張表結(jié)構(gòu)SQL Server 語(yǔ)法MySQL 把 NVARCHAR 換成 VARCHAR 即可 CREATE TABLE Users ( Id INT IDENTITY PRIMARY KEY, UserName NVARCHAR(50) NOT NULL UNIQUE, PasswordHash NVARCHAR(200) NOT NULL, -- 存 PBKDF2 或 BCrypt 哈希絕不存明文 DeptId INT NULL, IsDeleted BIT DEFAULT 0, CreatedAt DATETIME2 DEFAULT SYSDATETIME() ); CREATE TABLE Roles ( Id INT IDENTITY PRIMARY KEY, RoleName NVARCHAR(50) NOT NULL, RoleCode NVARCHAR(50) NOT NULL UNIQUE -- 如 admin、auditor ); CREATE TABLE Permissions ( Id INT IDENTITY PRIMARY KEY, PermCode NVARCHAR(100) NOT NULL UNIQUE, -- 如 user:create PermName NVARCHAR(50) NOT NULL, ParentId INT NULL, -- 支持菜單樹 PermType TINYINT NOT NULL -- 1 菜單 2 按鈕 3 接口 ); CREATE TABLE UserRoles ( UserId INT NOT NULL, RoleId INT NOT NULL, PRIMARY KEY (UserId, RoleId) ); CREATE TABLE RolePermissions ( RoleId INT NOT NULL, PermId INT NOT NULL, PRIMARY KEY (RoleId, PermId) );參數(shù)說(shuō)明PermType用 TINYINT 區(qū)分菜單、按鈕、接口三類前端渲染菜單樹時(shí)只取PermType1按鈕鑒權(quán)取PermType2。IsDeleted做軟刪除后臺(tái)系統(tǒng)里用戶被刪了但歷史日志還要關(guān)聯(lián)硬刪除會(huì)斷鏈。3.2 接口鑒權(quán)怎么落到代碼里權(quán)限碼存庫(kù)之后后端要在每個(gè)接口上校驗(yàn)當(dāng)前用戶是否擁有對(duì)應(yīng)權(quán)限。常見做法是自定義一個(gè)[HasPermission(user:create)]特性配合 ASP.NET Core 的授權(quán)中間件。// 自定義權(quán)限校驗(yàn)特性 [AttributeUsage(AttributeTargets.Method)] public class HasPermissionAttribute : Attribute { public string PermCode { get; } public HasPermissionAttribute(string permCode) PermCode permCode; } // 在中間件或 ActionFilter 里讀取當(dāng)前用戶權(quán)限集合做比對(duì) public class PermissionFilter : IAsyncActionFilter { private readonly ICurrentUser _currentUser; public PermissionFilter(ICurrentUser currentUser) _currentUser currentUser; public async Task OnActionExecutionAsync( ActionExecutingContext context, ActionExecutionDelegate next) { var attr context.ActionDescriptor.EndpointMetadata .OfTypeHasPermissionAttribute().FirstOrDefault(); if (attr ! null !_currentUser.Permissions.Contains(attr.PermCode)) { context.Result new ForbidResult(); // 無(wú)權(quán)限直接 403 return; } await next(); } }邏輯說(shuō)明_currentUser.Permissions是登錄時(shí)從數(shù)據(jù)庫(kù)加載并緩存的權(quán)限碼集合不要每次請(qǐng)求都查庫(kù)。緩存用IMemoryCache或 Redis用戶權(quán)限變更時(shí)主動(dòng)失效。參數(shù)上PermCode要和數(shù)據(jù)庫(kù)Permissions.PermCode嚴(yán)格一致建議用常量類管理避免手寫字符串拼錯(cuò)。3.3 數(shù)據(jù)權(quán)限部門隔離怎么做功能權(quán)限解決「能不能點(diǎn)這個(gè)按鈕」數(shù)據(jù)權(quán)限解決「能看到哪些數(shù)據(jù)」。企業(yè)系統(tǒng)里常見需求是部門經(jīng)理只能看本部門數(shù)據(jù)普通員工只能看自己的。做法是在查詢層統(tǒng)一注入過(guò)濾條件。// 數(shù)據(jù)權(quán)限過(guò)濾根據(jù)當(dāng)前用戶的數(shù)據(jù)范圍拼接 WHERE 條件 public IQueryableOrder ApplyDataScope(IQueryableOrder query) { var user _currentUser; return user.DataScope switch { DataScope.All query, // 全部數(shù)據(jù) DataScope.Dept query.Where(o o.DeptId user.DeptId), // 本部門 DataScope.DeptAndChild query.Where(o _deptIds.Contains(o.DeptId)), DataScope.Self query.Where(o o.CreatorId user.Id), // 僅本人 _ query.Where(o false) // 兜底無(wú)范圍則查不到 }; }參數(shù)說(shuō)明DataScope是枚舉存在角色表上。_deptIds是當(dāng)前部門及其所有子部門的 ID 列表需要遞歸查詢部門樹得到。兜底分支返回false很重要避免權(quán)限配置缺失時(shí)把全量數(shù)據(jù)暴露出去。4. 從接口到頁(yè)面一套可復(fù)用的增刪改查骨架4.1 統(tǒng)一響應(yīng)結(jié)構(gòu)與異常處理后臺(tái)系統(tǒng)的接口返回格式必須統(tǒng)一否則前端每個(gè)頁(yè)面都要寫不同的解析邏輯。我一般用{ code, message, data }三段式。public class ApiResultT { public int Code { get; set; } // 0 成功非 0 業(yè)務(wù)錯(cuò)誤碼 public string Message { get; set; } ; public T? Data { get; set; } public static ApiResultT Ok(T data) new() { Code 0, Data data }; public static ApiResultT Fail(int code, string msg) new() { Code code, Message msg }; } // 全局異常中間件把未捕獲異常轉(zhuǎn)成統(tǒng)一格式避免堆棧泄露到前端 public class ExceptionMiddleware { private readonly RequestDelegate _next; private readonly ILoggerExceptionMiddleware _logger; public ExceptionMiddleware(RequestDelegate next, ILoggerExceptionMiddleware logger) { _next next; _logger logger; } public async Task InvokeAsync(HttpContext context) { try { await _next(context); } catch (BusinessException ex) // 業(yè)務(wù)異常返回可讀提示 { context.Response.StatusCode 200; await context.Response.WriteAsJsonAsync(ApiResultobject.Fail(ex.Code, ex.Message)); } catch (Exception ex) // 系統(tǒng)異常記日志返回通用提示 { _logger.LogError(ex, 未處理異常 {Path}, context.Request.Path); context.Response.StatusCode 500; await context.Response.WriteAsJsonAsync(ApiResultobject.Fail(500, 系統(tǒng)繁忙)); } } }邏輯說(shuō)明業(yè)務(wù)異常如「用戶名已存在」返回 HTTP 200 業(yè)務(wù)錯(cuò)誤碼前端統(tǒng)一彈 message系統(tǒng)異常返回 500堆棧只進(jìn)日志不進(jìn)響應(yīng)。參數(shù)上Code的分配建議按模塊分段比如 1000 段是用戶模塊2000 段是訂單模塊方便排查。4.2 分頁(yè)查詢的通用封裝后臺(tái)系統(tǒng)里 80% 的接口是分頁(yè)列表。封裝一個(gè)通用查詢參數(shù)和返回結(jié)構(gòu)能省掉大量重復(fù)代碼。public class PageQuery { private int _page 1; private int _size 20; public int Page { get _page; set _page value 1 ? 1 : value; } public int Size { get _size; set _size value is 1 or 200 ? 20 : value; } public string? Keyword { get; set; } // 通用模糊搜索詞 } public class PagedResultT { public long Total { get; set; } public ListT Items { get; set; } new(); }參數(shù)說(shuō)明Size上限卡 200防止前端傳size100000把數(shù)據(jù)庫(kù)拖垮這是很常見的翻車點(diǎn)。Page和Size在 setter 里做邊界修正比在每個(gè)接口里判斷更省事。4.3 前端表格頁(yè)的最小閉環(huán)前端不管用 Vue 還是 React一個(gè)列表頁(yè)的最小閉環(huán)是查詢表單、表格、分頁(yè)器、操作按鈕。以 Vue 3 Element Plus 為例核心是請(qǐng)求封裝和權(quán)限指令。// request.js統(tǒng)一請(qǐng)求封裝自動(dòng)帶 token、統(tǒng)一處理錯(cuò)誤碼 import axios from axios const request axios.create({ baseURL: /api, timeout: 15000 }) request.interceptors.request.use(config { const token localStorage.getItem(token) if (token) config.headers.Authorization Bearer ${token} return config }) request.interceptors.response.use(resp { const { code, message, data } resp.data if (code ! 0) { ElMessage.error(message || 請(qǐng)求失敗) return Promise.reject(new Error(message)) } return data // 直接把 data 拋給業(yè)務(wù)層少寫一層 .data }, err { if (err.response?.status 401) router.push(/login) // token 過(guò)期跳登錄 return Promise.reject(err) }) export default request邏輯說(shuō)明請(qǐng)求攔截器統(tǒng)一注入 token響應(yīng)攔截器統(tǒng)一處理業(yè)務(wù)錯(cuò)誤碼和 401 跳轉(zhuǎn)。參數(shù)上timeout設(shè) 15 秒后臺(tái)系統(tǒng)里導(dǎo)出類接口可能超時(shí)這類接口單獨(dú)放寬或走異步任務(wù)。注意別在攔截器里對(duì) 401 做無(wú)限重試會(huì)導(dǎo)致死循環(huán)。5. 避坑與排查后臺(tái)系統(tǒng)交付時(shí)最常翻車的五件事5.1 現(xiàn)象登錄后菜單正常但點(diǎn)按鈕報(bào) 403原因通常是權(quán)限碼不一致。前端按鈕上寫的權(quán)限碼是user:add數(shù)據(jù)庫(kù)里存的是user:create或者后端特性上寫的是User:Create大小寫敏感。這類問(wèn)題在聯(lián)調(diào)階段特別隱蔽因?yàn)椴藛文茱@示說(shuō)明角色權(quán)限關(guān)聯(lián)是對(duì)的只是按鈕級(jí)權(quán)限碼對(duì)不上。解決把權(quán)限碼定義成后端常量類前端通過(guò)接口拉取當(dāng)前用戶的權(quán)限碼列表按鈕顯隱用v-ifperms.includes(user:create)不要手寫字符串。聯(lián)調(diào)時(shí)打開瀏覽器 Network 面板看 403 請(qǐng)求對(duì)應(yīng)的權(quán)限碼再去數(shù)據(jù)庫(kù)Permissions表比對(duì)。5.2 現(xiàn)象列表頁(yè)數(shù)據(jù)量到幾萬(wàn)條后越來(lái)越慢原因一般是分頁(yè)查詢沒(méi)走索引或者用了LIKE %keyword%導(dǎo)致全表掃描。后臺(tái)系統(tǒng)的列表頁(yè)往往帶模糊搜索%開頭的 LIKE 無(wú)法用索引數(shù)據(jù)量一大就崩。解決模糊搜索改成前綴匹配LIKE keyword%或者上全文索引。如果業(yè)務(wù)必須支持中間匹配考慮把搜索字段單獨(dú)抽到一張搜索表用倒排索引方案。另外檢查ORDER BY字段有沒(méi)有索引分頁(yè)查詢的排序字段沒(méi)索引是性能殺手。5.3 現(xiàn)象并發(fā)編輯同一條數(shù)據(jù)后保存的覆蓋了先保存的原因是沒(méi)有做樂(lè)觀鎖。兩個(gè)管理員同時(shí)打開一條用戶記錄A 改了手機(jī)號(hào)保存B 改了郵箱保存B 的提交把 A 的修改覆蓋了。解決在表上加RowVersion字段SQL Server 用rowversion類型MySQL 用version INTEF Core 配置為并發(fā)令牌。保存時(shí)如果版本號(hào)不匹配拋DbUpdateConcurrencyException前端提示「數(shù)據(jù)已被他人修改請(qǐng)刷新后重試」。// EF Core 樂(lè)觀鎖配置 modelBuilder.EntityUser() .Property(u u.RowVersion) .IsRowVersion(); // SQL Server 自動(dòng)維護(hù)每次更新自增5.4 現(xiàn)象導(dǎo)出 Excel 時(shí)內(nèi)存暴漲甚至 OOM原因是把全量數(shù)據(jù)一次性查出來(lái)再寫 Excel。后臺(tái)系統(tǒng)導(dǎo)出幾萬(wàn)條數(shù)據(jù)很常見用ToList()全量加載再遍歷寫內(nèi)存直接頂不住。解決用流式導(dǎo)出。EPPlus 或 NPOI 都支持分批寫入配合 Dapper 的QueryAsync流式讀取每 1000 條寫一批寫完釋放。如果數(shù)據(jù)量超過(guò)十萬(wàn)級(jí)改成異步任務(wù)接口只返回任務(wù) ID后臺(tái)用IHostedService或 Hangfire 跑導(dǎo)出完成后通知用戶下載。5.5 現(xiàn)象部署到服務(wù)器后接口偶發(fā) 500本地復(fù)現(xiàn)不了原因可能是多實(shí)例部署時(shí)IMemoryCache不共享或者數(shù)據(jù)庫(kù)連接池耗盡。后臺(tái)系統(tǒng)如果做了負(fù)載均衡用戶權(quán)限緩存在單機(jī)內(nèi)存里A 實(shí)例改了權(quán)限B 實(shí)例還是舊緩存就會(huì)出現(xiàn)「有時(shí)能訪問(wèn)有時(shí) 403」。解決緩存統(tǒng)一用 Redis別用IMemoryCache存跨請(qǐng)求共享的數(shù)據(jù)。連接池方面檢查連接字符串有沒(méi)有設(shè)Max Pool Size默認(rèn) 100高并發(fā)下容易耗盡適當(dāng)調(diào)大并確保連接用完即釋放。6. 進(jìn)階把后臺(tái)系統(tǒng)做成可復(fù)用的底座做到這里一套能跑的后臺(tái)系統(tǒng)已經(jīng)成型了。但真正拉開差距的是把它沉淀成團(tuán)隊(duì)可復(fù)用的底座。我的習(xí)慣是抽一個(gè)Company.Framework類庫(kù)把統(tǒng)一響應(yīng)、異常中間件、權(quán)限特性、分頁(yè)封裝、審計(jì)日志這些通用能力放進(jìn)去新項(xiàng)目直接引用只寫業(yè)務(wù)模塊。審計(jì)日志這塊值得單獨(dú)說(shuō)。后臺(tái)系統(tǒng)的所有寫操作都應(yīng)該留痕誰(shuí)、什么時(shí)間、改了什么、改前改后是什么。做法是在SaveChanges重寫里攔截 EF Core 的變更跟蹤。// 在 DbContext 里重寫 SaveChanges自動(dòng)記錄審計(jì)日志 public override async Taskint SaveChangesAsync(CancellationToken ct default) { var logs new ListAuditLog(); foreach (var entry in ChangeTracker.Entries() .Where(e e.State is EntityState.Added or EntityState.Modified or EntityState.Deleted)) { logs.Add(new AuditLog { EntityName entry.Entity.GetType().Name, Action entry.State.ToString(), OldValue entry.State EntityState.Modified ? JsonSerializer.Serialize(entry.OriginalValues.ToObject()) : null, NewValue entry.State ! EntityState.Deleted ? JsonSerializer.Serialize(entry.CurrentValues.ToObject()) : null, UserId _currentUser.Id, CreatedAt DateTime.UtcNow }); } AuditLogs.AddRange(logs); return await base.SaveChangesAsync(ct); }參數(shù)說(shuō)明OriginalValues和CurrentValues是 EF Core 變更跟蹤提供的原始值和當(dāng)前值序列化后存庫(kù)。注意別把密碼哈希這類敏感字段記進(jìn)日志可以在序列化前過(guò)濾字段名。審計(jì)日志表增長(zhǎng)很快建議按月分表或定期歸檔。驗(yàn)證這套底座是否合格我的標(biāo)準(zhǔn)是新建一個(gè)業(yè)務(wù)模塊比如「公告管理」從建表到接口到前端頁(yè)面能不能在半天內(nèi)完成。如果還要改框架層代碼說(shuō)明抽象沒(méi)到位。另一個(gè)驗(yàn)證方法是寫集成測(cè)試用WebApplicationFactory起一個(gè)內(nèi)存服務(wù)跑一遍登錄、鑒權(quán)、增刪改查的完整鏈路確保每次改框架層不會(huì)破壞已有功能。最后說(shuō)個(gè)我自己的習(xí)慣每套后臺(tái)系統(tǒng)上線前我一定會(huì)手動(dòng)跑一遍「權(quán)限矩陣」——用管理員、部門經(jīng)理、普通員工三個(gè)賬號(hào)把每個(gè)菜單和按鈕都點(diǎn)一遍確認(rèn)該看到的看到、該攔的攔住。這個(gè)動(dòng)作看起來(lái)笨但比任何自動(dòng)化測(cè)試都容易發(fā)現(xiàn)權(quán)限配置的遺漏。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
在线性黄高清免费视频| 欧美色九九| 亚洲AV成人在线| 亚洲第一页第二页激情| …中文字幕亚洲乱,97人妻无码费视…| 国产精品视频精品一二| 人人操人人操人人人操| A片大香蕉在线| 久久久一区二区三区麻豆| 亚洲视频一二区| 五月天婷婷基地| 久操精品网| 操逼天美3区| 国产区日韩区在线观看| 丁香五月激情网| 中文字幕视频2区| 粉嫩粉嫩一区性色AV片| 在线看片国产精品每日更新| 欧美日本中字另类在线| 日韩免费簧片| 骚女天天综合网| 日韩极品无码B| 国产外初女出血视频| 亚洲综合性网址| 日日夜夜干| 在线视频日韩欧美国产| JIZZJIZZ国产精品喷水| 新久久AV| av在线观看不卡网站| 欧美色图 色综合图| 91中文字幕制服丝袜免费视频| 男人精品天堂一区| 中文字幕第23区| 久操 高清| 亚洲影院小综合| 又摸又舔在线观看网站| 制服中出中文人人精品| 啊啊啊啊好大好硬啊啊啊啊啊| 欧美色66| 9ⅰ久久久天天| 性爱欧美五月| 无码人妻系列少妇| 中文字幕熟女人妻丝袜丝| 中文字幕免费看| 丝袜视频网国产90| 男人天堂网站| 九九综合久久| 欧美日韩国产传媒在线精品| 99啪啪| 91欧美成人色站| 久草资源在线视频官方总站日韩丝袜美腿 | 日韩三级伊人| 99re免费视频精品全部| 国产又操| 天天欧美色| 人妻日日夜夜精品| 六月婷婷一区二区三区| 日本免费二区三区| 少妇精品久久| 郑州宾馆老熟女露脸啪啪| 国产中文字幕曰本毛片| 人妻熟女字幕一区二区| 东京热不卡视频| 激情婷婷丁香网| 综合97| 成人一二| 天天色综合天天操| 天天看特黄的免费网站| 91网站18禁| 秋霞操逼片| 国产 v乱码一区二| 神马久久久久久久久久| 亚洲色图欧美色图综合| 人人模人人看| 久久久999日本大片| 国产AV天美| 日韩综合色网| 东京热视频网| 五月综合激情网| 丰满人妻被猛烈进入中| 亚洲日韩视频二区| 柠檬AV导航| 91美女在线视频| 亚洲天堂电影网| 无码78| 综合欧美激情网| 激情视频网址| 岛国不卡超碰护士AV在线播放| 国产乱码久久久| 一本色道综合久久欧美| 日本三级大片| 久久久久人| 美女裸体无遮挡永久免费观看网站| 国产精品岛国片在线观看| 天天欧美欧美亚洲网| 伊人aaa| 色五月av| 91超碰人人操| 久久99深爱久久99精品| 日韩中文字幕视频| 日产国产精品中文久久婷婷| 国产福利一区二| 日韩人体偷拍| 最新AV在线| 97超碰中文在线| 亚洲精品xxx| 一二三区在线| 亚洲成人性爱网站在线播放| 男人天堂2012| 上床啊啊啊| 91中文在线| 亚洲欧美日韩中文久久自慰| 亚洲欧洲综合成人av一区| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 午夜久久久| 欧美另类精品xxxx| 国产熟女自拍| 日本123区操B视频| 欧美天天射| 男人的天堂网免费| 日B操| 久久久艹艹艹| 女沟厕偷窥piss小便| 九九久久久九九| 少妇熟女一区二区三区| 欧美日不卡| 少妇综合网| 女人天堂AV五区在线| 91综合在线| 国产伊人自拍| 人人操人人操人人人操| 国产欧美黑人丰满在线| 丁香九月激情啪| 欧美丰满少妇交换91欧美精品| 亚洲欧美日韩精品久久久一区二区| 久久伦理视频久久大香蕉视频| 色屁屁影院www国产| 日韩一区二区熟女| 秋霞久久亚洲精品成人| 久久人妻一区二区三区高清| 偷窥自拍亚洲天堂网爆| 国产精品爆乳懂色蜜乳| a人片中文字幕一区二区| 天天草夜夜草高潮片| 日韩图区| 超碰久热| 久久三| 国产区在线| 99re这里只有精品中心播放 | rivers-china.com| 久久青娱乐| 亚洲 欧美 91| 青椒国产97在线熟女| 精品久久久久成人码免| 天天干,夜夜爽| 青娱乐国产剧情av一区| 人妻久久| 插入粉嫩少妇视频| 2019天天操天天爽天天拍| 欧美极品性爱天天射| 97国产精品久久久久| 色噜噜狠狠色综合日日| 亚洲欧洲中文日韩女优乱码| 素人伊尹大香蕉免费下载视频| 免费夜夜爱黄色视频毛片| 凹凸视频在线一区二区| 国产在线激情| 大乔未久88一区| 五月丁香六月激情综合| 美国一区二区三区视频| 中文字幕精品丝袜| 日韩欧美性吧婷婷乱伦大香蕉| 影音先锋一区二区在线资源| 色播五月丁香| 国产精品一二三在线看| 家庭乱伦国产精品| 94色色电影网| WWW美腿丝袜香蕉中文| 天天操av懂色| 久9久| 国产综合操逼高清| 高清无码 国产精品| 内射夫妻三片| 美女黄网| 欧美在线播放| 中文字幕一二三| 性欧美| 骚女高跟AV在线| 一道本东京热加勒比一区二区三区| 日韩一级特黄av毛片| 久久婷婷五月综合| 337p大胆噜噜噜噜噜91Av| 欧美亚洲一级在线观看| 三男一女不戴套的A片| a啊啊啊啊啊啊啊啊一区二区| 超碰欧美在线欧美| 欧美午夜视频| 亭亭在线资源| 欧美丝袜91| 限制级中的三级片中的黑粗大屌屌日人妻熟女| 热热色综合网| 人妻喷水| 我要色综合网站| 天天日美女的B| 欧美97日韩| 日本97久久久精品| 日本欧美一区二区三区免费| 中英熟女操女| 亚洲影院成人| 亚洲在线欧美| 91天天| 在线视频97| 亚洲精品99999| 91欧美大片| 啊啊啊在线观看| 人妻一区二区三区熟女| 无遮挡男女激烈动态图| 国产美女自拍AV| 97在线精品观看视频| 日本成人免费一区二区三区| 成人无码电影在线观看网| 国产精品露脸在线观看| 99色婷婷| 狼天天狼天天大香蕉| 炮色五月| 性性久久| WWW操逼| 人人爽人人精品乱人伦AV| 亚洲情色五月天 | 综合91网| 男人的天堂VA| 久久欲| 中文字幕亚洲热播人妻| 色婷婷丁香五月| 男人的天堂,欧美亚洲另类国产日韩,日本高清一区二区 | 天天做日日做| 色五月婷婷麻豆在| 91老熟女老女人国产老太| 国产精品久久久久999| 啪啪啪精品| 亚洲日韩在线a不卡99精品| 久久久久久久免费A片国产成a人亚洲精∨品无码 | 国产夫妻性生活视频| 老熟妇91| 午夜超爽| 天天综合精品| 使劲用力艹少妇视频一区二区 | 精品一二三区久久AAA片| 九九热精品| 久操 高清| 干b网| 手机午夜电影神马久久| 91美女丝袜诱惑视频| 特级大荫道BBwBBwBBW| 亚洲AV在线资源| 放黄片放3级黄片没穿衣服| 国产日韩区| 激情网五月天| 人妻色情天天操| 国产精品一区二区a| 人人插人人搞人人操| 天无日色综合| 国产精品网址| 欧美成人黄网色网站| 亚洲中文字幕乱码无码一区二区 | 久久国内| 91精品国久久久久久无码| 3P丝袜熟女 色综合| 国产真乱mangent| 9久久精品| 熟妇国产免费一区| 国产精品永久免费10000| 亚洲午夜AV| 91国内外在线| 久久精品日韩| 亚洲天堂自拍| 性无码专区2020| 久操大香蕉手机视频在线看| 欧美丝袜中文字幕07在线| 日韩国产乱子伦App| a男人的天堂| 丝袜AV一区二区三区| AA特级绝黄| 97碰碰日本乱偷人妻中文的| 久久久久久99AV无码免费网站| 久久久婷| 人妻精品一区二区| 香蕉在线一区二区三区| 91精品丝袜久久久久久| 欧美久热| 91丨人妻丨国产丨丝袜| 亚洲国产一区二区三区在线| 国产精品人妻无码久久久互動交流| 久久亚洲婷婷| 超碰色大香蕉| 色婷婷色99国产综合精品| 国产熟女高潮一区二区三区| 天天操天天舔| 欧美亚洲首页| 日韩av熟女一区二区三区成人| 欧美亚洲| 好看的91视频| 在线强奷到舒服的无码视频| 亚洲狠狠入| 91蜜桃婷婷狠狠久久综合9色| 992视频一区| 亚洲操操| 蜜乳成人AV| 亚洲免费97免费| 黄页网站免费高清在线观看| 国产精品大屁股999| 一级特级aaaa毛片免费观看| 久久久偷拍| 台欧久久精品视频| 午夜120视频在线观看| 无码男人天堂| 91碰碰| 91综合网| 欧美日韩欧美| 内射中出日韩在线观看视频| 明星性猛交ⅹxxx乱大交| 嗯啊啊啊轻点视频 | 亚洲天堂久| 精品少妇一区二区三区在线视频| 亚洲视频精选| 欧美成人综合| 五月婷婷综合网| 欧美日韩国产成人高清| 蜜桃臀一区二区aV| 亚州操操穴网| 國產尤物AV尤物在線觀看| 欧美亚洲在线| 无码视频一区二区| 91精品大奶人妻| 久久精品国产精品一区| 久久久久久久久久久精| 熟妇亚洲一区二区三区| 91操碰| 強姦亂倫a| 综合色播| 少妇淫妇久久久久久久| 国产丰满少妇久久久精品影院| 成人三级片无码| 日韩性爱啪啪视频| 三四中文字幕| 99热18这里只有精品| 男人兔费天堂| 国产a级午夜毛片| 亚洲精品国产精品成人| 蜜臀久久99精品久久久久电影| 超碰性爱97| 插欧洲美女欧美精品| 韩国免费播放一级毛片| 国语少妇精| 青青草女人天天干| 人人澡综合涩| 国产精品2020| 伊人97色天使| 伊色综合天堂色97| 天天操夜夜操| 久操精品网| 国产无马视频| 国产精品久久久久久久AV大片| 国产成人精品网站| 综合五月天| 四虎免费视频| 久久久久元码视频| 日韩欧美偷拍美女视频| 96AV久久久| 嗯嗯啊中文字幕| 婷婷综合五月| 五月色综合| 9久久精品| 欧美性生活综合| 深田咏美亚洲精品福利社| 天堂无码精品国产久| 国产精品直播在线观看直播| 日本综合色图| 狠狠干综合| 日本成人A片免费看| 日本韩欧美在线播放a| 欧亚三区动漫| 狠狠操狠狠燥| 噜噜噜亚洲精| 超碰4A| 91艹| 疯操AV| 91中出在线| 超碰九九| 黄页av| 国产农村妇女毛片精品久久| 亚洲精品97久久中文字幕| 中文精品少妇天堂| 国产又粗又长又大的视频| 欧美性Fer办公室秘书| 欧美大干日韩| 色噜噜人妻av中文字幕| 夜夜爽夜夜高潮夜夜爽| 探花视频免费观看国产专区| 精品欧美老熟女一二区| 操逼操2| 大香蕉乱级| 婷婷在线视频在线观看| 370p日韩欧美亚洲精品| 女人午夜视频777| 精品国产肉丝袜在线拍国语| 九九九网页| 久久国模av| 99最新日韩偷拍视频| 九九九成人| 国语av狠狠色丁香婷婷综合激情| 一牛影视成人片免费| 中文字幕日本久久| 久久久精品国产亚洲伊人| 国产黄色动态精品| 国产又粗又长又大的视频| 黑人娇小av在线播放| 国产强奸乱伦xd| 最新日韩黄片| 天天日日本| 欧美色图自拍| 影音先锋每日最新资源在线观看| 免费看日产一区二区三区| 欧美熟妇视频| 97在线亚洲| 综合久久少妇中文字幕| 亚洲超碰AV| 好淫网一二三视区| 青青久久久| 午夜国产成人精品视频| 五月婷婷性爱| 色五月AV在线| 亚洲无码 国产无码| 欧美丝袜制服久久| 欧美性,色九九| 精品人妻少妇| 8050无码八戒| 精品国产99| AV色女综合| 国产野战露脸在线播放| 国产欧美美女免费观看视频| 欧美图片校园春色| 啪啪啪精品视频| 麻豆国产原创AV色哟哟| 风月影院十八禁| 极品色www影院| 亚洲视频一二区| 屁股久久久久久| 爽 好舒服 无码刺激久久| 色第一页| 欧美后入| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 麻豆天美在线| 亚洲精品一区二区三区在线播放| 丝袜视频一区二区在线播放国产中文| 国产成人亚洲精品无| 丁香婷婷大香蕉| 中国熟女91| 午夜超爽| 美女黑人91神马| 日本孕妇一区二区视频操逼免费看 | 天天肏美女| 精品玖九九久| 狠狠狠狠狠干| 色网亚洲人| 国产又操| 人妻久久| 九九热九九热| w w w.久久精品| 精精夜夜| 无码一区二区精品视频久久久春药| 欧美亚洲性爱一区二区| 国产黄色剧情影片麻豆免费播放| 东北黄色电影| 岛国在线免费视频| 和协影院中文字幕三区| 国产女人和拘做爰视频| 天天草AV| 九九99久久| 亚洲高清色综合| 亚洲精品 大香蕉| 色欧美亚洲| 国产精品情侣啪啪| 亚洲欧美在线观看无码| 欧美大干日韩| 亚洲人妻av| 综合久久97| 99re69综合| 人妻81p| 91热色| 99热这里是精品| 亚欧成人一级片在线播放| AV色天香在线| 嫩草影院在线观看精品| av橘色网站| 性爱动态120秒| 91精品国产91久久福利| 欧美日韩亚洲五月天婷婷| 久久AV无码网址| 好吊色综合| 久久精品视频在线观看| 精品亚洲国产成人AV制服丝袜| 欧美se综合| 好吊色一区| 国产一级黄色片在线观看| 精品人妻一区二区三区不卡断| 午夜天天碰综合视频| 不卡av在线中文字幕| 久久久国产护士丝袜美腿一| 久操高青| 色官网在线| 秋霞网无码| 中文字幕在线第二页| 另类综合另类| 俺去俺来也在线www| 蜜臀久久99精品久久久电影| 4虎在线视频| 亚洲中文制服诱惑| 最近的最新的中文字幕视频| 中文字幕天堂在线| 色色97爱| 91n.欧美| 日本高清熟女久久一区| 麻豆国产原创AV色哟哟| 欧美婷婷| 91动漫操逼视频| 日本中文熟女视频| 唯美清纯 妖精视频| 天天插夜夜爽| 人妻精品综合中文字幕在线 | 久久久∴| 欧美日日夜夜| 美女诱惑爱爱| 国产免费一区二区在线A片视频| av强奸乱轮| 久久只有精品| 中文字幕在线免费观看 | 亚洲日韩人妻中文字幕一区| 欧美92| 91激情国产| 久久精品人妻一区二区| 国产精品久久久蜜臀| 超碰狠狠操| 国产精品自产拍在线观看社区| 一区二区三区在线美女| 人妻9117c| 91操熟女| 男女一进一出视频久久| 人人妻人人爱人人玩| 国产97av| 熟女熟妇一区二区三四区| 941超碰| 色欧洲97| 亚洲综合贴图91 | 欧美日韩电影成人在线| 日韩欧洲操屄视频| 日韩av免费一级电影| 日本αv| 97无码视频在线播放| 亚洲欧美人妻| 强奸乱伦免费网站| 午夜视频久久久久一区| 天堂а√在线最新版在线| 性爱乱伦视频免费| 日韩在线一区二区| 日本性爱不卡视频| 深田咏美亚洲精品福利社| 亚洲色欲天天人妻无码系列专区| 大香蕉综合| 五月婷婷性爱| 大香蕉伊人一区在线观看| 炮色五月| 欧美视频激情久久久久久| 97日视频| 91在线一起| 欧美激情精品| 四虎午夜影院| 婷婷中文网| 亚洲无码99| av在线浏览| 日韩图区| 日本三级精品| 欧美日韩大香蕉| 日韩欧美国产一区二区三区四区| 日本道久久综合色色| 五月天偷拍| 欧美精品丝袜久久久中文字幕| 大奶尤物鲍汁淫荡欧美视频粉嫩夜夜骚| 先锋音影AV| 一二三区视频在线观看| 欧美v日韩v亚洲v最新在线| 久久久久亚洲av综合波多野制衣| 极品色www影院| 色哟哟国产精品免费网址| 99www.bibizy香蕉资源国产一区二区三区高清 | 一区二区影院| 亚洲色偷偷色噜噜狠狠99网| 一区,二区,三区视频| 中文字幕熟女人妻丝袜丝| 97香蕉网| 亚洲AV无码国产成人| 91逼逼女人91| 亚洲AV不卡在线观看| 午夜精品久久99蜜桃的功能章节| 成人精品一区二区91毛片不卡| 99久在线精品99re8| 夜夜高潮夜夜爽高清视频一 | 色婷婷综合网站| 黑人中出21连凳花野真衣| 91熟女视频网| 青草草免费网站av| 婷婷色一区| 欧美色图在线视频少妇| 免费A片三p视频| 狠狠操综合| 试看60秒| 欧美黄色大片在线观看 | 91精品人妻偷情| 色婷婷99| 亚洲操操操无码| 亚洲第一狼人丝袜美女另类 | 欧美一二三级精品在线| 大香蕉宗合网在线| 亚州,欧美在线| 亚洲精品天堂久久A∨51成人漫| 99热超碰| 91精品91久久久中77777| 人人妻人人狠人人| 欧美激情色婷婷花野真衣一区二区| 久久精品熟妇丰满人妻99| 91狠| 欧美啪啪色吧在线| 亚洲欧洲综合视频在线| 啊嗯嗯啊好大好爽| 乱伦av国产| 国产精品视频| 黑人美精品 A片| 亚洲人妻熟妇三十三区| 久久在线观看免费视频| 欧美精品另类人妖xxxx| 天天色欧美| 亚洲天堂中文字幕无码男同| 色约约一区=区三区| 亚洲国产欧美中文永久| 成人一级二级| 亚欧韩av| 97伦综合| 欧美操人| 超碰免费人妻在线| 国产精品小视频一区二区三区| 麻豆亚洲AV成人无码久久精品| 成人av免费观看| 蜜桃臀av一区二区| 日本一本一区二区三区四区五区欧美日韩中文字幕| 中文字幕欧美精品亚洲日韩蜜臀| 天天色播| 免费试看60秒| 青草香蕉网| 啪啪视频亚洲第一| 香蕉色网| 婷婷五月av| 丝袜美腿av女优在线| 情色日播放AV| 午夜视频久久久久一区| 亚洲999综合| 国产在线精品偷| 国产欧美另类久久久精品课程| 人妻天堂综合网| 激情熟女12P| 精国久久一区二区三区98| wwwcaobibi| 亚洲丝袜综合| 级品肉射| 婷婷五月天网| 最新av网站在线观看| 亚洲人精品午夜不卡| 激情婷婷| 一起草欧美| 久久成人东京热人妻| 国产少妇与亚洲av| 欧亚成人| 久久中文字幕在线观看| 九九英色视频| 爱我干综合| 无遮挡男女激烈动态图| 亚欧洲一区二区视频| 天天干天天拍| 欧美丰满少妇xx高潮| 精品人妻一区二区三区四区| 亚洲色性情三级| 一区二区三区机械有限公司| 日语五十路和六十路亚洲国产精品| 国产熟女二区| 骚货人妻偷情自拍在线视频| 超碰成人公开| 97在线免费| 91欧美巨乳| 青青草吊丝| 在线99热| 成人aⅴ一区二区三区| 亚欧美色| 国产熟码AV| 久久夜嗨| 116美女午夜| 女人爽到高潮潮喷18禁网站| 中文色综合| 日韩少妇无码| 中文字幕国产| 国产视频小说| 久久有碼| 亚洲AV免费在线观看| 99久久网站| 午夜120视频在线观看| 欧洲在线性爱视频| 人妻91少妇| 爱丝福利| AV色五月天| 欧美日本天堂| 国产高清不卡视频| 人人爽天天爽| 五月花婷婷| 凹凸视频特色日本特黄| 亚洲成?V人片在线观看福利| 中文字幕人成乱码熟女香港| 日韩兔费看黄片| 2017天天插| 婷婷丁香人妻 | 人人操人人大香蕉| 不卡一区二区日本视频| 欧洲亚洲国产综合在线| 日韩性爱小视频| 亚洲色图欧美一区二区不卡| 91丝袜美女视频| 亚洲色图日韩丝袜制服一区二区五月在线| 蜜桃丰满熟妇av无码区不卡| 大香网伊人久久综合网eew| 久射吧| 欧美青青视频| 蘋果手機免費看成人Av| 人妻在线大香蕉| 国厂麻豆77q4| 97爱碰| 经典丝袜一区| 啊嗯嗯啊好大好爽| 天天日骚逼熟女| 亚洲脚交| 欧美在线天堂| 亚洲图片欧美| 熟妇综合一区二区三区| 亚洲伊人久久综合97| 午夜男女爽爽爽影院视频| 国产高清视频无码在线| 国产又黄又粗的视频| 欧美一级久久久丰满| 亚洲欧美在线观看免费| 亚洲av无线观看| 国模精品一区二区三区苹果色戒| 三级三久久线久久99久目本WW| 综合久久中文字幕综合日韩精品| 五月激情综合网| 另类综合另类| 天天夜夜久久| 成人一级二级| 亚洲av资源| 国产日韩精品suv| 中文日本免费高清| 717影院理论午夜伦八戒| 长长久久免费视频| 色婷婷综合久久中文字幕雪峰| 一本一首道人妻少妇免费久久| 超碰一区二区| 免费试看60秒| 国产一区二区精品久久99| 日本一级性爱| 99999久久久久9国产精品| 国产综合久久久鬼色| 亚洲熟妇综合久久久久久| 最新制服中文第一页| 強姦亂倫a| 日本综合久久| 99re9这里只有精品| 乱色老一区二区三区的观看方式| 久久岛国| 啪啪免费| 亚洲 欧美 91| 精品久久久不卡一区二区| 男人的天堂com| 日韩三A大片在线观看| 午夜精品视频777| 校园春色亚洲欧洲| 亚洲黄色电影| xxx0国产在线播放| 欧州色图区| 亚洲人综合| 免费精品国偷自产在线在线| 免费啪啪一级视频| 熟妇熟女一区二三区| 久久精品国产97欧美精品亚洲 | 亚洲欧美天堂| 国产农村一一级特黄毛片| 久9久9精品| 久久久久夜夜夜夜| 亚洲中文字幕精品久久久久久直播| 日韩一级二级在线| 亚洲欧美清纯| 亚洲色图亚洲无码强奸乱伦| 10000部十八禁看电影| 粉嫩av一区二区三区天美传媒| 国产强奸91| 欧美日韩国第一区| 水滴偷拍| 成人国产精品三级A片| 大香蕉琪琪日本女优不卡| 久久产精品一区二区三区电影| 99色天堂| 亚洲美腿丝袜香蕉影视欧美成人| 在线国产福利网址导航| 人妻无码后入| 国产无码精品久久久久久| 婷婷综合在线| 日本布卡一区二三区| 久久久久亚洲Aⅴ无码| 色五月第四色| 草草影院最新网址| 大奶尤物鲍汁淫荡欧美视频粉嫩夜夜骚 | 国产亚洲精品无码三区| 中文字幕一二三区| 男人天堂网站| 久久9亚洲| 国产在线精品偷| 人妻熟女一区二区| 色色福利| 人人九九精| 精品区国产区一区二区三区| 久操| 日韩女模中文造逼| 欧美色老汉| 亚洲色综合| 婷婷激情四射| 超碰 97国产熟女| 91福利网在线观看| 91天美传媒精品| 中文字幕国产| 亚洲青青草| 亚洲av无码成人精品国产| 日韩AV噜噜噜一区二区三区四区| 亚洲精品久久久久久久蜜桃臀| 免费男人的天堂| 丁香五月av| 亚洲精品久久久久毛片A片拉屎| 久久国产99精品72福利| 欧美欧美啪啪视频| 天美传媒在线一区| 天天日B夜夜干B时时操B| 色噜噜人妻av中文字幕| 97碰在线视频| 一二三区操逼国产91| 亚洲熟女综合| 日韩激情中文字幕有码| 天天影视综合色| 欧美熟爽综合| 蜜乳AV.COM| 噜噜瑟| 天美麻豆精品视频99| 97资源视频| 中文字幕av片| 日本一区二区三区欧美日韩中文字幕| 天天激情综合站| 欧美性五月| 久久啊哟| 午夜电影在线观看无码专区| 亚洲人妻精品一区二区| 久久视网78| 久久这里只精品99re66图| 91精片| 精品乱码久久久久| 伊人婷婷五月天| 波多野结衣AV无码一区| 久久精品日韩专区免费观看| 国语人妻精彩刺激| 岛国大片在线观看网站入口| 男同专区一区二区三区在线| 欧美精品久久96人妻无码| 韩国一级做A片免费的| 操逼操2| 欧美专区17页| 亚洲码和欧洲精品激情系列| 黄色性爱网网| 韩国一级做a久久久久| 九久久精品| 精品久久久久黄少妇| 天天做日日爱夜夜爽| 大二网站亚洲| 成人三级片一区二区三区视频| 亚洲AV高潮| 亚洲丝袜二区| 国语对白在线播放视频| 久久精品熟女亚洲AV麻豆软件| 91无摭挡| 婷婷情色五月天| 亚洲男人的天堂亚洲| 亚洲人妻中文高清| 日婷婷| 四虎在线观看视频| 日本不卡免费二区| 先锋音影AV| 亚洲综合码| 2020中文字幕| 天天色播亚洲综合网站| 最新三级网址| 婷婷av在线中文字幕| 男人的天堂免费| 97人人夜| 一本大道久| 97资源站久久| 内射黑丝袜| 97精品国产精品免费观看| 亚洲人在线| 校园春色综合| 亚洲午夜免费狠狠干| 少妇滛荡视频| 国语对白在线播放视频| 日本精品无码三级网站| 国产美女裸体秘 永久无遮挡| 亚洲中字幕日本一区二区三区| 美女91在线| julia国产在线| 亚洲精品97p| 人妻大香蕉| 中文字幕av一区二区三区人妻少妇| 国产久久日| 97在线青| 日日妻色网| 97草草| 欧洲站一级二级三级h| 中文字幕诱惑制服人妻丝袜美丝袜美| 青春草A| 伊人久久久日韩一区| 少妇69中文| 天天看特黄的免费网站| 伊人国产视频| 性爱AV天堂| 亚洲超碰综合网| 精品国产乱码久久久久久日本公司| 学生妹天天看| 素人伊尹大香蕉免费下载视频| 亚洲影视第一页| 久久熟女嫩草成人片免费| 国产97/欧美| 亚洲无码日韩电影| 日韩精品人妻| 91P0RNY大屁股人妻| 免费av在线播放二区| 精品乱码在线观看| 久久久蜜桃臀无码视频| 久久东京热成人| 亚洲色图欧美色图制服诱惑| 乱码熟妇人妻久久久| 日本欧美成人片AAAA| 日韩人成网站在线播放| 久久精品国产精品一区| 色区97| 亚洲国产日韩欧美熟妇在线| 国产日本久久免费精品| 成人丁香五月| 蜜桃精品一区二区三区ww| 97爱亚洲综合色| 91女优在线观看| 中国少妇啪啪视频| 美日韩男女操屄视频| 伊人久久大香线蕉无码| 97婷婷色| 国产美脚女优尤物在线观看| 国产偷人妻精品一区二区在线| 97超碰影音| 国产精品高潮久久久无码| 亚洲蜜乳av| 成人婷婷丁香| 欧美72网页| 精品人妻一区二区三区四区| 久久国产在线一区二区| 国产精品久久久久久片| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 国产精品久久久亚洲一区| 欧美日韩婷婷中文| 亚洲区 欧美区| A级毛片在线看免费| 亚洲激情四射| 中文久久96| 97超碰护士| 五月丁香社区婷婷日韩欧美精品影院| 天天欧美色| 97久久国产精品| 一级黄色性爱裸体视频| 黄片不用下载在线观看| 精品乱子一区二区三区99| 亚洲风情综合网| 成人性爱AV在线免费观看| 91精品久久久久久综合五月天| 一区二区 电影 亚洲| 午夜在线播放| 中国一区二区亚洲人妻| 日韩国产十八禁| 熟女人妻一区二区三区免费看| 亚洲欧洲日韩国产自在线| 91亚洲欧美色图| 国产精品一区二区三区免费视频| 伊人五月天激情| 91久久久视| 欧美裸体美女日麻屄| 三级三久久线久久99久目本WW| 小明看看网址| 欧美一二三级精品在线| 69超碰综合| 抽插亚洲无码| 欧美精品999| 果冻传媒一区二区三区| 性在久久久久久| 欧美78| 美国黄片aaa| 免费的av网| 久操97| 蜜臀久久99精品久久综合| 日韩本不卡视频在线观看| 99久久精品无码一区二区| 神马久久69| 日韩在线一区二区| juliaann丝袜大战黑鬼| a片偷拍视频| 欧美日韩理论一区| 婷婷操视频| 丝袜狠狠草尤物人妻av91| 精品九九| 蜜臀精品1区2区| 国产91精品在线免费| 96AV精品| 色色毛片| 亚洲日韩青青草色月| 大屁股人妻女教师撅着屁股| 嗯……啊…嗯嗯…啊…好舒服| 一二三区操逼国产91| 手机不卡视频不卡在线一二三区| 精品欧美老熟女一二区| 日产国产精品中文久久婷婷| 国产精品内射婷婷一级二| 天天日日本| 国产欧美精选自拍一区| 亚洲日韩少妇一道本视频| 另类 日韩 熟女| 欧美亚洲韩国视频十五区| 久久草在线综合视频| 中国91AV| 荡小穴在线观看| 在线人成亚洲视频免费观看| 久久大线蕉一区| 中文字幕国产| 伊人四虎综合| 激情五月丁香五月| 91bbb| 91中文精品日韩欧美在线| 波多野42部无码喷潮在线观看 | 国产精品视频内谢女人| 黑人中出21连凳花野真衣| 国产精品一区二区校花| 青青青草原| 日韩乱码Av| 人人看人人爰人人操| 国产熟女自拍| 五月婷婷影院| ,成人免费啪啪视频| 精彩久久中文| 久久久久免费少妇| 100啪啪视频大全| 风骚少妇视频中文字幕| 99视频内射三四| 亚洲无码偷拍| 激情综合网一盗摄| 91国产精品在线看| 人妻干天天| 少妇蹲下买菜露大唇0| 日本人体九九九九九九| 91精品久久久久五月天精品| 日本ZZ高免费A级视频| 大香蕉综合| 97国产成人精品免费视频| 97天堂| 劲爆欧美人妖三区91| julia高潮后不停追击中出| 两女互慰AV高潮喷水在线观看| 日本亚欧爱爱| 亚洲色欲一区二区三区| HEYZO高无码国产精品227| 91综合在线| 综合情欲网| 大奶尤物鲍汁淫荡欧美视频粉嫩夜夜骚| 殴美大黄片| 激情五月综合开心五月| 97久久超碰日韩精品| 伊人991| 天堂蜜桃无码视频一区二区| 亚洲。日韩。欧美| 国模少妇一区二区三区| 国产v片在线免费观看| 欧美色图20P| 亚洲色丰满少妇高潮| 狼天天狼天天大香蕉| 色香色欲天天综合网天天来吧| 成人国产视频在线观看| 久久这里只精品| 精品美女久久一二三| 荡小穴在线观看| 久久丁香| 性爱av网站| 精品国产一区二区三区香蕉欧美| 亚洲丝袜诱惑| 99AV| 九九九九九九免费视频| 欧亚日韩三区| 成人老鸭窝人人在线视频| 色色热| 伊人五月天| 一本一道vs波多野结衣| 五十路六十路素人熟女| 久久大黄片| 91五十路| 干B网| 亚洲第一页色网| 国产精品一区二区麻豆| 亚洲综合一| 亚洲成人妻日韩在线| 91精品丝袜久久久久久无码人妻| 天天影视色香色欲| 欧美在线视频99| 亚洲九区| 99热国产| www.婷婷| 欧美激情综合色综合啪啪五月| 亚洲精品三| 国产精品亚洲免费| 性色av婷婷久久一区二区点复制| 欧美专区日本专区| 国产精品久久久久久久毛片1| 最新三级网址| 欧美大香蕉专区网| 手机在线视频国内精品| 最新中文字幕在线亚洲| 欧美顶级黄色大片免费| 久久久A∨| www男人天堂| 九九九久久久W精品| 大逼色网站| 久久色精品视频在线| 97色亚洲| 搡老熟女免费视频 | 亚洲久热| 91大胆欧美| 后入人妻一区| 欧美色图 人妻| 熟女91网| 97se亚洲综合自|