日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

lin-cms-dotnetcore.是如何方法级别的权限控制(API级别)的

發布時間:2023/12/4 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 lin-cms-dotnetcore.是如何方法级别的权限控制(API级别)的 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

方法級別的權限控制(API級別)

Lin的定位在于實現一整套 CMS的解決方案,它是一個設計方案,提供了不同的后端,不同的前端,而且也支持不同的數據庫

目前官方團隊維護 lin-cms-vue,lin-cms-spring-boot,lin-cms-koa,lin-cms-flask 社區維護了 lin-cms-tp5,lin-cms-react,lin-cms-dotnetcore,即已支持vue,react二種前端框架,java,nodejs,python,php,c#等五種后端語言。

  • 直接上lin-cms-dotnetcore的demo?http://vvlog.baimocore.cn/#/post/5ecf592e-cc24-9f01-004e-6c0a548f2784

  • http://cms.baimocore.cn/

  • 用戶名:admin

  • 密碼:123qwe

下面我們來講一下.NET?Core這個項目中權限控制的實現。

對于CMS來說,一個完善的權限模塊是必不可少的,是系統內置實現的。為了更加簡單地理解權限,我們先來理解一下ASP.NET?Core有哪些權限控制。

1.AuthorizeAttribute的作用?

這個特性標簽授權通過屬性參數配置,可應用于控制器或操作方法上,對用戶的身份進行驗證。

如果沒有授權,會返回403狀態碼,我們可以通過重寫,來實現返回JSON字符串,讓前臺提示。前提是請求中間件配置了如下二行。

  • app.UseAuthentication();?認證,明確是誰在操作,認證方式如用戶名密碼,登錄后,可以得到一個token,或者寫入cookies,這樣可以確定這個用戶是誰

  • app.UseAuthorization();?授權中間件,明確你是否有某個權限。在http請求時,中間件會在帶有權限特性標簽?[Authorize]?的操作,進行權限判斷,包括角色,策略等。

該控制器下的操作都必須經過身份驗證,

[Authorize] public class AccountController : Controller {public ActionResult Login(){}public ActionResult Logout(){} }

這樣只顯示單個方法必須應用授權。

public class AccountController : Controller {public ActionResult Login(){}[Authorize]public ActionResult Logout(){} }

如果我們通過AllowAnonymous特性標簽去掉身份驗證。Login方法無須進行驗證。即可匿名訪問。

[Authorize] public class AccountController : Controller {[AllowAnonymous]public ActionResult Login(){}public ActionResult Logout(){} }
  • 基于角色的授權

  • 我們可以通過給這個特性標簽加參數,配置,某個方法,控制器是否有這個角色,如果有此角色才能訪問這些資源。

    單個角色

    [Authorize(Roles = "Administrator")] public class AdministrationController : Controller { }

    多個角色,我們可以這樣配置,即用逗號分隔。用戶有其中一個角色即可訪問。

    [Authorize(Roles = "HRManager,Finance")] public class SalaryController : Controller { }

    當某個方法必須同時有二個角色怎么辦呢。該控制器只有同時有PowerUser,和ControlPanelUser的角色才能訪問這些資源了。

    [Authorize(Roles = "PowerUser")] [Authorize(Roles = "ControlPanelUser")] public class ControlPanelController : Controller { }
    • 3.更多。請看官網?https://docs.microsoft.com/zh-cn/aspnet/core/security/authorization/roles?view=aspnetcore-3.1

    更多該特性標簽的介紹,也可參考官網,這里就不展開了。

    那這個角色,到底在哪配置的??

    登錄時生成的Token,是基于JWT的,其中的Claim的type為ClaimTypes.Role(枚舉值),角色名稱為字符串,與特性標簽中的Roles屬性值相同。如

    new Claim(ClaimTypes.Role, "Administrator");

    有多個角色時,List<Claim>?多加幾個?new Claim(ClaimTypes.Role, "PowerUser");?也是支持的。user為用戶信息,LinGroups為當前用戶的分組(多個)

    即如下代碼示例,多個分組(角色)

    var claims = new List<Claim>() {new Claim(ClaimTypes.NameIdentifier, user.Email ?? ""),new Claim(ClaimTypes.GivenName, user.Nickname ?? ""),new Claim(ClaimTypes.Name, user.Username ?? ""), };user.LinGroups?.ForEach(r =>{claims.Add(new Claim(ClaimTypes.Role, r.Name));});

    AuthorizeAttribute源碼

    [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true, Inherited = true)]public class AuthorizeAttribute : Attribute, IAuthorizeData{public AuthorizeAttribute(){}public AuthorizeAttribute(string policy){this.Policy = policy;}public string Policy { get; set; }public string Roles { get; set; }public string AuthenticationSchemes { get; set; }}

    我們可以看到,它繼承了Attribute,說明這是一個特性標簽,IAuthorizeData是一個接口,有這三個屬性,約束了 一個規范,即有角色Roles,有策略Policy,有身份驗證方案AuthenticationSchemes,該特性支持Class,支持方法,該特性標簽支持多個共用,該特性標簽支持被繼承。

    基于角色的授權和基于聲明的授權是一種預配置的策略,即固定的角色,固定的Claims驗證。

    我們可以基于自定義策略的實現更多的權限驗證或某些規則驗證。

    AuthorizeAttribute能做的權限控制如下

    • 基于角色級別的權限控制(多個角色,單個角色)

    • 基于聲明的授權:可自定義聲明特性。

    • 基于策略的授權:

    lin-cms-dotnetcore中的權限設計

    說了這么多官方提供的,我們講一下lin-cms-dotnetcore中的權限設計

    完整的表結構如下?https://luoyunchong.github.io/vovo-docs/dotnetcore/lin-cms/table.html

    LinCmsAuthorizeAttribute

    [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true)]public class LinCmsAuthorizeAttribute : Attribute, IAsyncAuthorizationFilter{public string Permission { get; }public string Module { get; }public LinCmsAuthorizeAttribute(string permission, string module){Permission = permission;Module = module;}public async Task OnAuthorizationAsync(AuthorizationFilterContext context){ClaimsPrincipal claimsPrincipal = context.HttpContext.User;if (!claimsPrincipal.Identity.IsAuthenticated){HandlerAuthenticationFailed(context, "認證失敗,請檢查請求頭或者重新登陸", ErrorCode.AuthenticationFailed);return;}IAuthorizationService authorizationService = (IAuthorizationService)context.HttpContext.RequestServices.GetService(typeof(IAuthorizationService));AuthorizationResult authorizationResult = await authorizationService.AuthorizeAsync(context.HttpContext.User, null, new OperationAuthorizationRequirement() { Name = Permission });if (!authorizationResult.Succeeded){HandlerAuthenticationFailed(context, $"您沒有權限:{Module}-{Permission}", ErrorCode.NoPermission);}}public void HandlerAuthenticationFailed(AuthorizationFilterContext context, string errorMsg, ErrorCode errorCode){context.HttpContext.Response.StatusCode = StatusCodes.Status401Unauthorized;context.Result = new JsonResult(new UnifyResponseDto(errorCode, errorMsg, context.HttpContext));}}

    上面的實現非常簡單,LinCmsAuthorizeAttribute繼承于Attribute,說明是一個特性標簽,有二個屬性Permission,Module,代表權限名,模塊名(用于區分哪個功能模塊),然后將權限名稱轉化為OperationAuthorizationRequirement,然后調用authorizationService中的方法AuthorizeAsync來完成授權。

    接下來,我們在控制器上使用LinCmsAuthorizeAttribute,那么我們

    [Route("cms/admin/group")] [ApiController] public class GroupController : ControllerBase {private readonly IGroupService _groupService;public GroupController(IGroupService groupService){_groupService = groupService;}[HttpGet("all")][LinCmsAuthorize("查詢所有權限組","管理員")]public Task<List<LinGroup>> GetListAsync(){return _groupService.GetListAsync();}[HttpGet("{id}")][LinCmsAuthorize("查詢一個權限組及其權限","管理員")]public async Task<GroupDto> GetAsync(long id){GroupDto groupDto = await _groupService.GetAsync(id);return groupDto;}[HttpPost][LinCmsAuthorize("新建權限組","管理員")]public async Task<UnifyResponseDto> CreateAsync([FromBody] CreateGroupDto inputDto){await _groupService.CreateAsync(inputDto);return UnifyResponseDto.Success("新建分組成功");}[HttpPut("{id}")][LinCmsAuthorize("更新一個權限組","管理員")]public async Task<UnifyResponseDto> UpdateAsync(long id, [FromBody] UpdateGroupDto updateGroupDto){await _groupService.UpdateAsync(id, updateGroupDto);return UnifyResponseDto.Success("更新分組成功");}[HttpDelete("{id}")][LinCmsAuthorize("刪除一個權限組","管理員")]public async Task<UnifyResponseDto> DeleteAsync(long id){await _groupService.DeleteAsync(id);return UnifyResponseDto.Success("刪除分組成功");}}

    這樣在方法上已經加了權限的標簽,但我們怎么得到系統中的所有權限,讓用戶配置呢。?獲取控制器及方法特性標簽。本質上,是通過反射,掃描當前程序集,會獲取到一個List,我們可以在系統啟動時把這些數據存到數據庫中。

    最新的方式是采用此方法,原理都相同。name,module唯一值。存入lin_permission表中,這時就有id值了。lin_group_permission就能用分組關聯了。

    public async Task SeedAsync() {List<PermissionDefinition> linCmsAttributes = ReflexHelper.GeAssemblyLinCmsAttributes();List<LinPermission> insertPermissions = new List<LinPermission>();List<LinPermission>allPermissions=await _permissionRepository.Select.ToListAsync();linCmsAttributes.ForEach(r =>{bool exist = allPermissions.Any(u => u.Module == r.Module && u.Name == r.Permission);if (!exist){insertPermissions.Add(new LinPermission(r.Permission, r.Module));}});await _permissionRepository.InsertAsync(insertPermissions);}

    實現方法級的權限控制源碼解析

    上面的LinCmsAttribute調用了IAuthorizationService類中的方法,那他是什么呢。原理可以看這個文章ASP.NET Core 認證與授權[7]:動態授權中的自定義授權過濾器

    我們需要了解一下這些類/接口/抽象類

    • IAuthorizationService(interface)

    • AuthorizationService(class)

    • IAuthorizationHandler(interface)

    • AuthorizationHandler<TRequirement>(abstract class)

    • PermissionAuthorizationHandler(class 自定義的類,繼承AuthorizationHandler)

    總結調用鏈如下

    LinCmsAuthorizeAttribute(繼承了IAsyncAuthorizationFilter的特性標簽) 調用了----> IAuthorizationService中的AuthorizeAsync方法 調用了----> IAuthorizationHandler中的HandleAsync 調用了----> AuthorizationHandler中的HandleRequirementAsync抽象方法 相當于調用----> PermissionAuthorizationHandler類中的實現方法HandleRequirementAsync 調用了----> IPermissionService類中的CheckPermissionAsync方法。 調用了----> IAuditBaseRepository<LinPermission,long> IAuditBaseRepository<LinGroupPermission, long> 使用FreeSql,判斷當前用戶所在分組是否擁有此權限。

    IAuthorizationService是什么呢。我們可以理解為,驗證當前用戶是否擁有對應的資源權限。系統默認實現了該方法

    public interface IAuthorizationService {Task<AuthorizationResult> AuthorizeAsync(ClaimsPrincipal user, object resource, IEnumerable<IAuthorizationRequirement> requirements);Task<AuthorizationResult> AuthorizeAsync(ClaimsPrincipal user, object resource, string policyName); }

    AuthorizationService是什么呢.他實現了IAuthorizationService接口. 通過源碼我們知道,它調用?await authorizationHandler.HandleAsync(authContext);

    public async Task<AuthorizationResult> AuthorizeAsync(ClaimsPrincipal user,object resource,IEnumerable<IAuthorizationRequirement> requirements) {if (requirements == null)throw new ArgumentNullException(nameof (requirements));AuthorizationHandlerContext authContext = this._contextFactory.CreateContext(requirements, user, resource);foreach (IAuthorizationHandler authorizationHandler in await this._handlers.GetHandlersAsync(authContext)){await authorizationHandler.HandleAsync(authContext);if (!this._options.InvokeHandlersAfterFailure){if (authContext.HasFailed)break;}}AuthorizationResult authorizationResult = this._evaluator.Evaluate(authContext);if (authorizationResult.Succeeded)this._logger.UserAuthorizationSucceeded();elsethis._logger.UserAuthorizationFailed();return authorizationResult; }

    IAuthorizationHandler 僅一個接口。

    public interface IAuthorizationHandler {/// <summary>/// Makes a decision if authorization is allowed./// </summary>/// <param name="context">The authorization information.</param>Task HandleAsync(AuthorizationHandlerContext context); }

    AuthorizationHandler,它繼承IAuthorizationHandler?而且他是一個抽象類,默認實現了HandleAsync方法,子類只用實現HandleRequirementAsync即可。

    public abstract class AuthorizationHandler<TRequirement> : IAuthorizationHandlerwhere TRequirement : IAuthorizationRequirement{public virtual async Task HandleAsync(AuthorizationHandlerContext context){foreach (TRequirement requirement in context.Requirements.OfType<TRequirement>())await this.HandleRequirementAsync(context, requirement);}protected abstract Task HandleRequirementAsync(AuthorizationHandlerContext context,TRequirement requirement);}

    我們就可以繼承AuthorizationHandler,子類實現從數據庫中取數據做對比,其中泛型參數使用系統內置的一個只有Name的類OperationAuthorizationRequirement,當然,如果我們需要更多的參數,可以繼承IAuthorizationRequirement,增加更多的參數。

    判斷當前用戶是否不為null,當調用CheckPermissionAsync,判斷是否有此權限。

    public class PermissionAuthorizationHandler : AuthorizationHandler<OperationAuthorizationRequirement>{private readonly IPermissionService _permissionService;public PermissionAuthorizationHandler(IPermissionService permissionService){_permissionService = permissionService;}protected override async Task HandleRequirementAsync(AuthorizationHandlerContext context, OperationAuthorizationRequirement requirement){Claim userIdClaim = context.User?.FindFirst(_ => _.Type == ClaimTypes.NameIdentifier);if (userIdClaim != null){if (await _permissionService.CheckPermissionAsync(requirement.Name)){context.Succeed(requirement);}}}}

    另外我們還需要把這個Handler注入到我們的DI中,在ConfigureServices中替換如下服務

    services.AddScoped<IAuthorizationHandler, PermissionAuthorizationHandler>();

    其中的PermssionAppService中的實現,檢查當前登錄的用戶的是否有此權限

    public async Task<bool> CheckPermissionAsync(string permission) {long[] groups = _currentUser.Groups;LinPermission linPermission = await _permissionRepository.Where(r => r.Name == permission).FirstAsync();bool existPermission = await _groupPermissionRepository.Select.AnyAsync(r => groups.Contains(r.GroupId) && r.PermissionId == linPermission.Id);return existPermission; }

    更多參考

    • ASP.NET Core 認證與授權[1]:初識認證

    開源地址

    • 后端接口Gitee 鏈接?https://gitee.com/igeekfan/lin-cms-dotnetcore

    • 后端接口GitHub 鏈接?https://github.com/luoyunchong/lin-cms-dotnetcore

    • 管理端UI?https://github.com/luoyunchong/lin-cms-vue

    • 用戶端UI?https://github.com/luoyunchong/lin-cms-vvlog

    總結

    以上是生活随笔為你收集整理的lin-cms-dotnetcore.是如何方法级别的权限控制(API级别)的的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    日本天天色 | 丰满少妇在线观看资源站 | 久久色视频 | 精品国产免费一区二区三区五区 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 97精品国产91久久久久久久 | 久久最新 | 操操操av | 免费黄色网址大全 | 在线一级片 | 日韩视频中文字幕在线观看 | 免费av在线网站 | 成人性生交大片免费观看网站 | 一区二区三区在线电影 | 免费av大全 | 91插插插网站| 亚洲va欧洲va国产va不卡 | 国产视频精品免费 | 国产91精品在线播放 | 丁香视频全集免费观看 | www.狠狠色.com | 亚洲va在线va天堂va偷拍 | 国产精品久久久久免费 | 国产精品99久久免费观看 | 天堂黄色片 | 国产成人99av超碰超爽 | 久久久黄色免费网站 | 婷久久| 国产高清99 | 午夜精品久久久久久久久久久久久久 | 黄色视屏av | 久久午夜电影网 | 久久久久国产精品一区 | 国产日韩欧美在线播放 | 国产精品 亚洲精品 | 超碰在线最新地址 | 国产精品久久久久三级 | 激情综合网色播五月 | 天天操天天舔天天爽 | 免费国产黄线在线观看视频 | 久草在线视频在线观看 | 欧美一级电影免费观看 | 亚洲专区中文字幕 | 99在线国产| 欧美日韩调教 | 91一区啪爱嗯打偷拍欧美 | 免费在线观看一区 | 亚洲jizzjizz日本少妇 | 五月天久久久 | 亚洲一区天堂 | 九九爱免费视频 | 亚洲午夜大片 | 国产成免费视频 | 亚洲婷婷伊人 | 黄色精品一区 | 久久99久久久久 | 日韩高清不卡一区二区三区 | 在线午夜av| 手机av在线网站 | 日本精品视频一区 | 日韩av免费一区 | 五月天久久婷婷 | 91精品啪| av性网站 | 国产精品网在线观看 | 欧美色图狠狠干 | 国产亚洲精品福利 | 99久久精品国产免费看不卡 | 日韩久久午夜一级啪啪 | 日韩精品久久一区二区 | 日韩女同一区二区三区在线观看 | 91麻豆精品久久久久久 | 精品xxx| 久久精品5 | 精品黄色在线 | 日本电影久久 | 天天综合人人 | 免费亚洲成人 | 国产精品破处视频 | 国产精品久久一区二区三区不卡 | 色婷婷六月天 | 免费在线观看一级片 | 激情深爱.com | 久久久污 | av高清影院 | 免费在线观看av的网站 | 精品国产欧美一区二区 | 久久成电影 | 精品国产一区二区三区在线 | 婷婷色网视频在线播放 | 日韩一级黄色片 | 天堂麻豆| 最新日韩视频在线观看 | 成人午夜剧场在线观看 | 亚洲天天做| 国产精品久久久久永久免费观看 | 成人免费看电影 | 午夜久久久久久久久 | 激情深爱五月 | 欧美一区二区三区免费观看 | 在线观看视频黄 | 免费观看一区 | 97热视频 | 高清中文字幕av | 国产精品自产拍在线观看桃花 | adc在线观看 | 手机在线黄色网址 | 欧美一区二区三区激情视频 | 69亚洲视频| 天天爱天天干天天爽 | 久久精品a | 九九日韩| 国产精品嫩草69影院 | 亚洲成a人片综合在线 | 欧美日韩高清一区二区 国产亚洲免费看 | 日韩久久视频 | 激情偷乱人伦小说视频在线观看 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 91精品啪在线观看国产 | 亚洲a成人v | 亚洲精品一区二区三区高潮 | 成人宗合网 | 久久99婷婷 | 国产馆在线播放 | 日韩电影一区二区三区在线观看 | 国产成人专区 | 国产在线观看免费观看 | 午夜精品中文字幕 | 久久久久久久久亚洲精品 | 美女精品在线 | 午夜色站 | 91视频88av | 在线观看视频黄 | 久久er99热精品一区二区三区 | 中文字幕乱码日本亚洲一区二区 | 久久久99精品免费观看 | 日韩大片免费观看 | www.com在线观看 | 男女全黄一级一级高潮免费看 | a在线观看免费视频 | 国内外成人免费在线视频 | 欧美日韩高清一区二区 | 91视频在线播放视频 | 91最新中文字幕 | 久久在线免费视频 | 久久国产欧美日韩 | 91日韩精品一区 | 久久免费成人 | 97综合网 | 91麻豆精品国产91久久久使用方法 | 成人免费视频网站 | 五月婷婷久久丁香 | 免费看成人片 | 成人av在线观| 狠狠狠综合 | 日本精品久久久久中文字幕5 | 免费日韩在线 | 久久久久久久久久久久电影 | 三级黄色在线 | 天天夜夜操 | 国内小视频 | 日韩在线观看视频网站 | а中文在线天堂 | 天堂v中文| 在线视频观看亚洲 | 色视频在线免费 | 中文字幕一区二区三区四区视频 | 国产高清免费观看 | 久久久久日本精品一区二区三区 | 波多野结衣小视频 | 成人免费观看视频大全 | 99热999 | 深夜免费小视频 | 国产精品久久久久久久久久三级 | 国产亚洲精品成人av久久ww | 国产高清av免费在线观看 | 99久久久国产精品免费99 | 久久久精品视频网站 | 成人久久久精品国产乱码一区二区 | 亚洲精品国偷拍自产在线观看蜜桃 | 日韩精品久久久免费观看夜色 | 日本不卡123| 国产亚洲精品久久久久久无几年桃 | 欧美一区二区三区在线播放 | 日韩在线视频线视频免费网站 | 日韩高清久久 | 五月导航 | 国产精品欧美久久久久久 | 欧美性生活免费 | 免费视频资源 | 国产999精品久久久久久 | 国产精品免费观看视频 | 91看片在线看片 | 久久免费美女视频 | 久久看片 | 国产亚洲精品久久久久久电影 | 亚洲精品理论 | 日本午夜在线观看 | 黄色小网站免费看 | 欧美天堂久久 | 中文字幕高清免费日韩视频在线 | 日狠狠 | 日日碰狠狠躁久久躁综合网 | 日韩美女av在线 | 欧美成人亚洲 | 久久字幕 | 国精产品满18岁在线 | 黄色小说在线免费观看 | 精品福利在线 | 色在线中文字幕 | 国产一级免费观看 | a黄色大片 | 成人一级片视频 | 欧美日韩国产在线精品 | 91精品国产99久久久久 | 欧美日韩免费一区二区三区 | 国产成人av一区二区三区在线观看 | 在线看片日韩 | 天天躁日日躁狠狠 | japanesefreesexvideo高潮 | 国产小视频在线免费观看 | 久久99久久99精品免观看粉嫩 | 中文字幕一区二区三区在线播放 | 天天操天天插 | 婷婷综合久久 | 五月天色站 | 深夜免费福利视频 | 日韩二区三区 | 欧美性黑人 | 成人av在线网| 国产精品色在线 | 免费在线观看的av网站 | 亚洲有 在线| 波多野结衣视频一区 | 久久久一本精品99久久精品66 | 中文字幕在线观看视频免费 | 一本一本久久a久久 | 99精彩视频在线观看免费 | 高清中文字幕av | 免费看国产a | 亚洲激情婷婷 | 亚洲最新av | 成人h电影在线观看 | 探花系列在线 | 天天亚洲| 毛片网免费| 四虎在线观看视频 | 69热国产视频 | 天天爽天天爽夜夜爽 | 色99网| 国产手机视频在线观看 | 中文久草| 国产一级黄色电影 | 欧美成a人片在线观看久 | 日韩三级在线 | 午夜久久福利 | 在线看中文字幕 | 在线日韩一区 | 成人污视频在线观看 | 精品久久久精品 | 五月婷丁香 | 久久久久二区 | 久久另类小说 | 二区视频在线观看 | 五月婷婷六月丁香激情 | 激情视频免费观看 | 成人在线黄色电影 | 欧美91成人网 | 樱空桃av| 欧美做受高潮电影o | 久久精品99北条麻妃 | 欧美另类交在线观看 | 91中文字幕 | 人人射人人澡 | 色综合天天综合 | 成人一级片在线观看 | av一级片网站 | 六月丁香在线视频 | 久久精品视频国产 | av在线免费观看网站 | 97狠狠操| 久久av网址 | 天天干天天综合 | 波多野结衣在线视频免费观看 | 国产手机视频 | 午夜av免费在线观看 | 国产成人精品久久久 | 在线免费观看国产视频 | 性色av香蕉一区二区 | 午夜久久美女 | 婷婷色网站 | 亚洲视频h | 97视频网站 | 91探花视频| 久久久美女 | 天天天操天天天干 | 中文字幕亚洲不卡 | 国产精品久久久久久久婷婷 | 99999精品| 精品国产乱码久久久久 | 91超碰免费在线 | 在线中文字幕电影 | 亚洲国产精品久久久久 | 日韩亚洲在线观看 | 日韩va欧美va亚洲va久久 | 久在线 | 国产精品18久久久久久久久久久久 | 国产手机视频在线 | 伊人六月 | 天堂va欧美va亚洲va老司机 | 日韩在线国产精品 | 成人久久久久久久久久 | 五月婷香蕉久色在线看 | 在线视频观看91 | 视频直播国产精品 | 91亚洲精品国偷拍自产在线观看 | 国产91探花 | 国产精品99久久久久久久久 | 日韩国产精品一区 | 亚洲精品午夜国产va久久成人 | 久久新| 日韩视频二区 | 亚洲乱码在线 | 久久精品高清 | 很污的网站 | 色婷婷亚洲婷婷 | 激情婷婷在线 | 欧美日韩1区2区 | 麻花豆传媒一二三产区 | 国产精品第7页 | 狂野欧美激情性xxxx | 亚洲国产大片 | www激情网| 国产成人黄色av | 国产精品黑丝在线观看 | 美女视频是黄的免费观看 | 99国产精品久久久久久久久久 | 欧美性网站 | 黄色的网站在线 | 高清av中文字幕 | 欧美在线不卡一区 | 免费在线激情电影 | 久久久噜噜噜久久久 | 国产在线精品一区二区不卡了 | 久久久久久久久久久久久久av | 天堂av网址 | 91精品国产一区二区三区 | 日本丶国产丶欧美色综合 | 偷拍精偷拍精品欧洲亚洲网站 | 中文字幕在线视频免费播放 | 色天天久久 | 久久精品欧美一区二区三区麻豆 | 免费麻豆网站 | 国产视频18 | 日韩电影在线观看一区二区 | 一级片免费观看视频 | 亚洲第一香蕉视频 | 夜又临在线观看 | 日韩午夜在线播放 | 天天草天天干天天射 | 国产精品久久久久久吹潮天美传媒 | 91在线永久 | 免费在线播放 | 久久玖 | 男女啪啪视屏 | 国产 字幕 制服 中文 在线 | 亚洲高清不卡av | 91亚·色| 亚洲国产人午在线一二区 | 国产精品18久久久久久久久久久久 | 一级淫片a| 91激情视频在线观看 | 亚洲综合在线播放 | 99c视频在线 | 在线观看国产高清视频 | 日韩在线 一区二区 | 一级欧美黄 | 91理论片午午伦夜理片久久 | 国产成人黄色网址 | 超碰在97| 日韩免费播放 | 亚洲男人天堂a | 日韩乱理 | 黄色h在线观看 | 亚洲黄色片在线 | 97视频在线观看成人 | 日韩欧美在线观看一区二区三区 | 片网站| 欧美性生交大片免网 | 奇米网777 | 丁香婷婷综合色啪 | 成人av免费播放 | 狠狠躁天天躁综合网 | 精品国产1区 | 激情五月婷婷网 | 青草视频在线 | 在线视频日韩一区 | 国产精品中文字幕在线 | 国产又粗又猛又黄又爽的视频 | 狠狠狠狠狠狠狠 | 麻豆精品传媒视频 | 国产小视频在线免费观看 | 日韩精品视频在线观看免费 | 欧美aaa一级 | 97超碰人人 | 亚洲国产黄色 | 中文av网站 | 免费看搞黄视频网站 | 99国产精品久久久久老师 | www..com毛片 | 激情一区二区三区欧美 | 色a4yy| 超碰在线最新地址 | 天天爽夜夜爽人人爽曰av | 亚洲精品国产视频 | 亚洲免费视频在线观看 | 久久久午夜精品理论片中文字幕 | 日韩午夜av电影 | 成人免费一区二区三区在线观看 | 高清中文字幕 | 久久激情视频网 | 午夜精品久久久久久 | 免费的成人av | 九色视频自拍 | 欧美性生交大片免网 | 特级黄色视频毛片 | 国产精品一区二区你懂的 | 国产精品久久久久久久久久久杏吧 | 久久国精品 | 日韩黄色在线观看 | 欧美有色| 久久久久久久久影视 | 欧美日韩亚洲第一 | 又污又黄网站 | 日韩精品一区二区三区高清免费 | 国产网站av| 美女福利视频一区二区 | 在线黄网站 | 不卡电影一区二区三区 | 麻豆久久久 | 国产91aaa | 欧洲精品二区 | 成人在线免费av | 天堂av最新网址 | 综合精品久久 | 亚洲精品综合在线 | 狠狠色噜噜狠狠狠合久 | 欧美韩日精品 | 在线观看日韩免费视频 | 国产精品毛片一区二区 | 精品人人人 | 久久视影 | 国产成人一区三区 | 久久综合免费视频 | 中文字幕在线播出 | 欧美日韩一区二区三区在线观看视频 | 亚洲国产中文在线观看 | 99免费在线| 99久久99久久精品国产片果冰 | 懂色av懂色av粉嫩av分享吧 | 中文字幕免费国产精品 | 免费亚洲婷婷 | 九九精品视频在线看 | 天天玩天天干天天操 | 国产99久 | 亚洲国产精品久久久久婷婷884 | 日日天天 | 久久久久国产一区二区三区四区 | 91桃色国产在线播放 | 精品一区二区视频 | 欧美成人va| 丁香六月在线观看 | 欧美一区二区日韩一区二区 | 亚洲精品在线播放视频 | 日韩在线观看一区二区三区 | 欧美激情视频在线免费观看 | 精品欧美日韩 | 九九热只有这里有精品 | 日韩精品一二三 | 精品毛片在线 | 久久只精品99品免费久23小说 | 一二区电影 | 精品免费国产一区二区三区四区 | 97国产超碰| 91色一区二区三区 | 九九久久影院 | 国产在线传媒 | 狠狠躁日日躁狂躁夜夜躁av | 99视频在线观看一区三区 | 日韩亚洲国产精品 | 人成电影网| 91热精品| 麻花豆传媒一二三产区 | 男女精品久久 | 精品欧美乱码久久久久久 | 狠狠操欧美 | 激情黄色一级片 | 婷婷精品 | 久久在线免费视频 | 中文字幕精品三级久久久 | 91网站免费观看 | 天天综合久久 | 亚洲国产精品电影在线观看 | 999久久久久久久久久久 | 亚洲国产精品人久久电影 | 国产黄在线 | 国产毛片久久 | 国产自偷自拍 | 中文字幕999 | 国内精品久久久久影院日本资源 | 国内精品视频在线 | 少妇bbw搡bbbb搡bbb | 国产麻豆视频在线观看 | 在线国产能看的 | 久久手机免费视频 | 81精品国产乱码久久久久久 | 一级免费片 | 国产另类av | 国产精品99精品久久免费 | 国产午夜一级毛片 | 国产99在线播放 | 精品亚洲视频在线观看 | 国产亚洲精品久久久久久无几年桃 | 午夜手机电影 | 日韩在线视频网站 | 在线观看亚洲视频 | 人人爽人人舔 | 欧美性网站 | 久久久久久久久久久免费av | 在线观看国产91 | 丁香综合激情 | 国产在线观看一 | 国产永久免费高清在线观看视频 | 国产一区二区三区免费视频 | 成人在线播放视频 | 菠萝菠萝在线精品视频 | 奇米777777 | 肉色欧美久久久久久久免费看 | 日韩中文字幕第一页 | 午夜在线资源 | 国产精品日韩精品 | 99久久精品免费看国产一区二区三区 | 99国产精品一区 | www日日 | 国产精品 中文字幕 亚洲 欧美 | 免费无遮挡动漫网站 | 久久桃花网| 成人蜜桃网 | 午夜久久视频 | 久久国产经典 | 99热精品视 | 最新国产精品亚洲 | 欧美福利视频一区 | 国色天香在线 | 狠狠地日 | 国产一二区免费视频 | www激情com| 在线观看 国产 | 国产一级视频在线 | 国产va精品免费观看 | 久草网在线视频 | 日韩成人免费在线电影 | 国产一区二区在线免费观看 | 青青射 | av电影在线免费 | av福利在线导航 | 精品在线观看国产 | 精品中文字幕在线播放 | 亚洲高清视频一区二区三区 | 99精品国产福利在线观看免费 | 五月婷婷综合久久 | 久久免费的精品国产v∧ | 激情综合网婷婷 | 午夜久久久久久久久久久 | 福利一区视频 | 又色又爽的网站 | 99热在线这里只有精品 | 日韩在线视频观看 | 久久视频在线观看 | 久久天天躁夜夜躁狠狠躁2022 | 午夜久久久久久久久久久 | 五月婷婷中文 | 国产精品12 | 日日夜夜天天人人 | 三级黄色大片在线观看 | 首页国产精品 | 日韩午夜小视频 | 不卡的av在线 | 色天天 | 国产又粗又硬又爽视频 | 国产专区在线视频 | 韩日色视频 | 中文字幕免费一区 | 中文字幕乱码亚洲精品一区 | 亚洲综合激情网 | 国产亚洲一区二区在线观看 | 国产日产高清dvd碟片 | 久草在线这里只有精品 | 亚洲在线精品视频 | 亚洲欧美成人在线 | 人人舔人人干 | 激情中文字幕 | 综合色在线观看 | 成人av网址大全 | 欧美精品在线观看免费 | 99久久久国产免费 | 久久久网站 | 天天天在线综合网 | 91成人欧美| 日韩v在线 | 高清av中文在线字幕观看1 | www.久久视频 | 国产精品视频最多的网站 | 欧美精品做受xxx性少妇 | 在线观看一区 | 狠狠干夜夜爱 | 国产伦理精品一区二区 | 精品国产亚洲日本 | 国产手机在线观看 | 国产很黄很色的视频 | 激情五月婷婷网 | 99精品黄色片免费大全 | 国产麻豆果冻传媒在线观看 | 成人综合日日夜夜 | 天天射天天色天天干 | 九九免费精品视频在线观看 | 色综合久久中文字幕综合网 | 婷婷久久五月天 | 97成人在线免费视频 | 一级免费看 | 欧美三级免费 | 久久久www成人免费精品张筱雨 | 久久久国产精品免费 | 日韩中文久久 | 国产视频一区精品 | 国产精品免费视频网站 | 国产精品久久久网站 | 综合精品久久久 | 日本在线成人 | 中文字幕乱码日本亚洲一区二区 | 91精品久久久久久久久久久久久 | 最新中文字幕在线资源 | 色.com| 亚洲国产理论片 | 五月婷婷在线视频观看 | 人人爱人人射 | 一本一本久久a久久精品综合小说 | 精品国产亚洲日本 | 四虎在线视频免费观看 | 婷婷网站天天婷婷网站 | 国产涩涩在线观看 | 超碰在线观看av.com | 色综合久久中文字幕综合网 | 成人aaa毛片 | 日本女人的性生活视频 | 91网站在线视频 | 美女精品网站 | 天天av在线播放 | 天天操网站 | 免费在线色| 久久精品香蕉 | 精品久久中文 | 1024久久 | 国产福利免费看 | 亚洲激情一区二区三区 | 亚洲一级片 | 国产资源网| 欧美一区视频 | 国产一级免费在线 | 成人网中文字幕 | 天天干天天插伊人网 | a视频在线看 | 美州a亚洲一视本频v色道 | 国产麻豆成人传媒免费观看 | 国产精品免费在线播放 | 成人免费视频播放 | 久久久久久免费毛片精品 | 奇米网777 | 日韩一二区在线观看 | 激情久久影院 | 69av免费视频 | www.国产视频 | 天天爱综合 | 91免费观看网站 | 国产色区 | 一区二区三区在线观看中文字幕 | 久久99精品一区二区三区三区 | 婷婷六月天天 | av中文字幕网址 | 色婷婷av一区 | 国产91成人 | 婷婷综合影院 | 国产五码一区 | 正在播放亚洲精品 | 视频一区二区免费 | 欧美成人视| 国产精品一区二区在线看 | 久久久久在线观看 | 99精品视频99 | 激情五月婷婷综合网 | 国产精品免费视频久久久 | a在线观看国产 | 亚洲综合小说 | 欧美日韩视频在线观看免费 | 91精品国产乱码在线观看 | 激情综合狠狠 | 在线观看黄色免费视频 | 亚洲国内精品视频 | 黄色大全视频 | 99热在线网站| 中文字幕999 | 久久精品综合网 | 伊人午夜视频 | 狠狠狠狠狠狠狠狠干 | 久久不射电影网 | 欧美日韩三级在线观看 | 免费91麻豆精品国产自产在线观看 | 久久久久免费看 | 天天天天天天操 | 亚洲区视频在线观看 | 中文字幕91视频 | 亚洲精品va | 国产成人1区| 色播99| 玖玖在线视频观看 | 全黄网站 | 91系列在线 | aav在线 | 国产亚洲精品福利 | 麻豆传媒一区二区 | av免费在线观 | 久久久穴| 国产精品午夜久久 | 人人玩人人添人人澡超碰 | 香蕉视频国产在线 | 美女一区网站 | 免费观看十分钟 | 国产中文a | 国产麻豆精品一区二区 | 亚洲精品午夜aaa久久久 | 2023亚洲精品国偷拍自产在线 | 日韩在线观看你懂得 | 久久婷婷国产色一区二区三区 | 国产这里只有精品 | 麻豆国产精品永久免费视频 | 国产精品美女视频 | 日本精品一区二区三区在线观看 | 怡红院成人在线 | 超碰97.com| 99精品免费久久久久久久久 | 国产自制av | 天天玩天天干天天操 | 久久se视频 | 免费a视频在线 | 成人app在线免费观看 | 在线电影播放 | 国产精品久久久久久久久久久杏吧 | 在线观看欧美成人 | 97国产大学生情侣白嫩酒店 | 国产剧情av在线播放 | 欧美精品一区二区三区四区在线 | 天天操天天拍 | 日本中文字幕网址 | 成人蜜桃 | 精品视频资源站 | 亚洲最新毛片 | 色综合久久久网 | 91av中文字幕 | 日韩精品免费一线在线观看 | 成人免费一区二区三区在线观看 | 91 在线视频 | 中文永久免费观看 | 久久久蜜桃 | 国产精品专区在线观看 | 亚洲黄色在线免费观看 | 日日夜夜国产 | 久香蕉| 成人一级黄色片 | 99精品视频在线播放免费 | 91香蕉视频| 四虎5151久久欧美毛片 | 亚洲精品综合在线 | 精品国产人成亚洲区 | 午夜精品一区二区三区在线观看 | 天堂av免费在线 | 草久在线观看视频 | 日韩有码专区 | 一区二区三区视频在线 | 亚洲精欧美一区二区精品 | 狠狠gao| 日韩午夜av电影 | 日韩精品视频第一页 | 一区二区三区韩国免费中文网站 | www色| 午夜成人影视 | 狠狠干天天 | 激情小说久久 | 免费观看午夜视频 | 麻豆视频在线免费看 | 久久精品国产成人 | 91av视频免费在线观看 | 成年人黄色在线观看 | 久久夜色精品国产欧美乱 | 久久99亚洲精品久久久久 | 免费黄色在线网址 | 婷婷精品视频 | 国产一区 在线播放 | 一级特黄av | 亚洲成年人在线播放 | 久久亚洲私人国产精品va | 特级西西人体444是什么意思 | 在线导航福利 | 色欧美综合 | 色婷婷狠狠操 | 日本护士三级少妇三级999 | 97操操操 | 久久夜av| 国产精品久久久久久久久岛 | 国产在线色站 | 亚洲资源网| 丝袜美腿在线播放 | 欧美日一级片 | 午夜精品视频一区二区三区在线看 | 精品视频一区在线观看 | 国产伦精品一区二区三区免费 | 99热最新精品| 2022久久国产露脸精品国产 | 欧美激情精品久久 | 中文字幕一二三区 | 亚洲麻豆精品 | 日日干综合 | 日韩区视频| 国模吧一区 | 婷婷激情五月综合 | 99久久9| 成人一区二区三区在线观看 | 婷婷成人亚洲综合国产xv88 | 日韩在线观看一区二区 | 久久精品欧美一区 | 17videosex性欧美 | 在线观看av黄色 | 久久毛片高清国产 | 一性一交视频 | 亚洲成人黄色在线观看 | 国产精品99久久久久久人免费 | 97电影院网| 国内精品久久久久久久久久清纯 | 黄色av在| 久草视频在线观 | 久久伦理网 | 久久欧洲视频 | 一区三区视频在线观看 | 制服丝袜欧美 | 欧美aa在线| 色婷婷综合久久久久中文字幕1 | 在线 国产一区 | 亚洲人成网站精品片在线观看 | 91免费视频网站在线观看 | 国产人在线成免费视频 | 精选久久 | 在线成人一区二区 | 亚洲第一中文网 | 国产在线播放观看 | 国产无遮挡猛进猛出免费软件 | 又粗又长又大又爽又黄少妇毛片 | 啪啪动态视频 | 国产一级一片免费播放放 | 欧美日韩国产精品久久 | www黄色软件| 国产区在线看 | 色五月成人 | 久久国产电影院 | 手机av观看 | 国产精品12 | 国产91亚洲精品 | 伊人久久影视 | 综合久久久久久久 | 婷婷激情五月 | 国产成人精品免费在线观看 | 久久成人精品视频 | 国产色在线,com | 91高清一区 | 在线观看91网站 | 日本在线观看一区二区三区 | 久草在线免费资源站 | 精品久久一级片 | 91av手机在线观看 | 五月天激情综合 | 九九久久国产精品 | 久久精品理论 | 国产色一区 | 91porny九色在线播放 | 国产精品久久伊人 | 国产小视频在线播放 | 奇米影视四色8888 | 麻豆视传媒官网免费观看 | 久久精品视频中文字幕 | 欧美乱淫视频 | 日韩两性视频 | 黄色a一级视频 | 97超碰福利久久精品 | 亚洲伊人网在线观看 | 最近免费中文字幕mv在线视频3 | www免费视频com━ | 97色资源| 福利视频精品 | 日本精品一区二区在线观看 | 国产又粗又长又硬免费视频 | 性色大片在线观看 | 国内精品久久久久影院男同志 | 国产麻豆电影 | 久久婷亚洲五月一区天天躁 | 成年人在线播放视频 | 国产精品女同一区二区三区久久夜 | 狠狠黄 | 久久精品999| 久久久久久毛片精品免费不卡 | 成年人黄色大全 | 97在线视频免费 | 国产精选视频 | 久久国产精品成人免费浪潮 | 亚洲成av人电影 | 国产精品毛片一区视频播 | 91视频麻豆视频 | 麻豆视频国产精品 | 亚洲欧美在线观看视频 | 国产精品久久久久久久免费观看 | 久久 地址| 日韩免费观看一区二区三区 | 国产不卡精品 | 国产精品成人一区二区 | 高清免费在线视频 | 欧美日韩国产在线精品 | 国产一区国产精品 | 在线电影日韩 | 国内成人精品视频 | 草久久影院| 国产1级毛片 | 久插视频 | 日韩剧情 | 国产精品免费久久久久久久久久中文 | 日本精品久久久一区二区三区 | 午夜天天操 | 91中文字幕在线观看 | 日韩av伦理片 | 亚洲1区在线 | 日韩免费一二三区 | 在线免费av播放 | 日韩欧美69 | 亚洲天堂网在线播放 | 大型av综合网站 | 99成人在线视频 | 国产中文字幕一区二区 | 免费高清看电视网站 | 日韩成人免费在线电影 | 日韩精品免费一区二区在线观看 | 国产精品99久久久久久有的能看 | 国产午夜视频在线观看 | 五月开心六月伊人色婷婷 | 精品国产成人 | 婷婷综合成人 | 丁香花在线观看免费完整版视频 | 国产午夜三级一区二区三桃花影视 | 中文字幕av全部资源www中文字幕在线观看 | 97在线观看免费视频 | 狠狠干天天操 | 日日夜夜精品视频天天综合网 | 久久99精品一区二区三区三区 | 亚洲成aⅴ人在线观看 | 麻豆91网站| 在线观看视频一区二区 | 国产成人99久久亚洲综合精品 | 久久激情电影 | 久草免费看 | 公与妇乱理三级xxx 在线观看视频在线观看 | 欧美天天综合 | 69夜色精品国产69乱 | 成人网色 | 黄网站色成年免费观看 | 精品色综合 | 久久精品国产久精国产 | 五月天高清欧美mv | 国产精品不卡在线播放 | 久久精品综合一区 | 色综合久久66 | 一级做a爱片性色毛片www | 国产成a人亚洲精v品在线观看 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 91精品国产福利 | 粉嫩av一区二区三区四区 | 国产精品久久三 | 99免费观看视频 | 成年人视频在线观看免费 | 性色av一区二区三区在线观看 | 久久艹艹 | 日韩av电影一区 | 色婷婷成人网 | 日韩视频免费在线观看 |