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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

快速理解ASP.NET Core的认证与授权

發(fā)布時(shí)間:2023/12/4 asp.net 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 快速理解ASP.NET Core的认证与授权 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

ASP.NET Core的認(rèn)證與授權(quán)已經(jīng)不是什么新鮮事了,微軟官方的文檔對(duì)于如何在ASP.NET Core中實(shí)現(xiàn)認(rèn)證與授權(quán)有著非常詳細(xì)深入的介紹。但有時(shí)候在開發(fā)過程中,我們也往往會(huì)感覺無從下手,或者由于一開始沒有進(jìn)行認(rèn)證授權(quán)機(jī)制的設(shè)計(jì)與規(guī)劃,使得后期出現(xiàn)一些混亂的情況。這里我就嘗試結(jié)合一個(gè)實(shí)際的例子,從0到1來介紹ASP.NET Core中如何實(shí)現(xiàn)自己的認(rèn)證與授權(quán)機(jī)制。

當(dāng)我們使用Visual Studio自帶的ASP.NET Core Web API項(xiàng)目模板新建一個(gè)項(xiàng)目的時(shí)候,Visual Studio會(huì)問我們是否需要啟用認(rèn)證機(jī)制,如果你選擇了啟用,那么Visual Studio會(huì)在項(xiàng)目創(chuàng)建的時(shí)候,加入一些輔助依賴和一些輔助類,比如加入對(duì)Entity Framework以及ASP.NET Identity的依賴,以幫助你實(shí)現(xiàn)基于Entity Framework和ASP.NET Identity的身份認(rèn)證。如果你還沒有了解過ASP.NET Core的認(rèn)證與授權(quán)的一些基礎(chǔ)內(nèi)容,那么當(dāng)你打開這個(gè)由Visual Studio自動(dòng)創(chuàng)建的項(xiàng)目的時(shí)候,肯定會(huì)一頭霧水,不知從何開始,你甚至?xí)岩勺詣?dòng)創(chuàng)建的項(xiàng)目中,真的是所有的類或者方法都是必須的嗎?所以,為了讓本文更加簡(jiǎn)單易懂,我們還是選擇不啟用身份認(rèn)證,直接創(chuàng)建一個(gè)最簡(jiǎn)單的ASP.NET Core Web API應(yīng)用程序,以便后續(xù)的介紹。

新建一個(gè)ASP.NET Core Web API應(yīng)用程序,這里我是在Linux下使用JetBrains Rider新建的項(xiàng)目,也可以使用標(biāo)準(zhǔn)的Visual Studio或者VSCode來創(chuàng)建項(xiàng)目。創(chuàng)建完成后,運(yùn)行程序,然后使用瀏覽器訪問/WeatherForecast端點(diǎn),就可以獲得一組隨機(jī)生成的天氣及溫度數(shù)據(jù)的數(shù)組。你也可以使用下面的curl命令來訪問這個(gè)API:

1

curl -X GET "http://localhost:5000/WeatherForecast" -H? "accept: text/plain"

現(xiàn)在讓我們?cè)赪eatherForecastController的Get方法上設(shè)置一個(gè)斷點(diǎn),重新啟動(dòng)程序,仍然發(fā)送上述請(qǐng)求以命中斷點(diǎn),此時(shí)我們比較關(guān)心User對(duì)象的狀態(tài),打開監(jiān)視器查看User對(duì)象的屬性,發(fā)現(xiàn)它的IsAuthenticated屬性為false:

在很多情況下,我們可能并不需要在Controller的方法中獲取認(rèn)證用戶的信息,因此也從來不會(huì)關(guān)注User對(duì)象是否真的處于已被認(rèn)證的狀態(tài)。但是當(dāng)API需要根據(jù)用戶的某些信息來執(zhí)行一些特殊邏輯時(shí),我們就需要在這里讓User的認(rèn)證信息處于一種合理的狀態(tài):它是已被認(rèn)證的,并且包含API所需的信息。這就是本文所要討論的ASP.NET Core的認(rèn)證與授權(quán)。

認(rèn)證

應(yīng)用程序?qū)τ谑褂谜叩纳矸菡J(rèn)定包含兩部分:認(rèn)證授權(quán)。認(rèn)證是指當(dāng)前用戶是否是系統(tǒng)的合法用戶,而授權(quán)則是指定合法用戶對(duì)于哪些系統(tǒng)資源具有怎樣的訪問權(quán)限。我們先來看如何實(shí)現(xiàn)認(rèn)證。

在此,我們單說由ASP.NET Core應(yīng)用程序本身實(shí)現(xiàn)的認(rèn)證,不討論具有統(tǒng)一Identity Provider完成身份認(rèn)證的情況(比如單點(diǎn)登錄),這樣的話就能夠更加清晰地了解ASP.NET Core本身的認(rèn)證機(jī)制。接下來,我們嘗試在ASP.NET Core應(yīng)用程序上,實(shí)現(xiàn)Basic認(rèn)證。

Basic認(rèn)證需要將用戶的認(rèn)證信息附屬在HTTP請(qǐng)求的Authorization的頭(Header)上,認(rèn)證信息是一串由用戶名和密碼通過BASE64編碼后所產(chǎn)生的字符串,例如,當(dāng)你采用Basic認(rèn)證,并使用daxnet和password作為訪問WeatherForecast API的用戶名和密碼時(shí),你可能需要使用下面的命令行來調(diào)用WeatherForecast:

1

curl -X GET "http://localhost:5000/WeatherForecast" -H? "accept: text/plain" -H "Authorization: Basic ZGF4bmV0OnBhc3N3b3Jk"

在ASP.NET Core Web API中,當(dāng)應(yīng)用程序接收到上述請(qǐng)求后,就會(huì)從Request的Header里讀取Authorization的信息,然后BASE64解碼得到用戶名和密碼,然后訪問數(shù)據(jù)庫來確認(rèn)所提供的用戶名和密碼是否合法,以判斷認(rèn)證是否成功。這部分工作通常可以采用ASP.NET Core Identity框架來實(shí)現(xiàn),不過在這里,為了能夠更加清晰地了解認(rèn)證的整個(gè)過程,我們選擇自己動(dòng)手來實(shí)現(xiàn)。

首先,我們定義一個(gè)User對(duì)象,并且預(yù)先設(shè)計(jì)好幾個(gè)用戶,以便模擬存儲(chǔ)用戶信息的數(shù)據(jù)庫,這個(gè)User對(duì)象的代碼如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

public class User

{

????public string UserName { get; set; }

????public string Password { get; set; }

????public IEnumerable<string> Roles { get; set; }

????public int Age { get; set; }

????public override string ToString() => UserName;

????public static readonly User[] AllUsers = {

????????new User

????????{

????????????UserName = "daxnet", Password = "password", Age = 16, Roles = new[] { "admin", "super_admin" }

????????},

????????new User

????????{

????????????UserName = "admin", Password = "admin", Age = 29, Roles = new[] { "admin" }

????????}

????};

}

該User對(duì)象包括用戶名、密碼以及它的角色名稱,不過暫時(shí)我們不需要關(guān)心角色信息。User對(duì)象還包含一個(gè)靜態(tài)字段,我們將它作為用戶信息數(shù)據(jù)庫來使用。

接下來,在應(yīng)用程序中添加一個(gè)AuthenticationHandler,用來獲取Request Header中的用戶信息,并對(duì)用戶信息進(jìn)行驗(yàn)證,代碼如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

public class BasicAuthenticationHandler : AuthenticationHandler<BasicAuthenticationSchemeOptions>

{

????public BasicAuthenticationHandler(

????????IOptionsMonitor<BasicAuthenticationSchemeOptions> options,

????????ILoggerFactory logger,

????????UrlEncoder encoder,

????????ISystemClock clock) : base(options, logger, encoder, clock)

????{

????}

????protected override Task<AuthenticateResult> HandleAuthenticateAsync()

????{

????????if (!Request.Headers.ContainsKey("Authorization"))

????????{

????????????return Task.FromResult(AuthenticateResult.Fail("Authorization header is not specified."));

????????}

????????var authHeader = Request.Headers["Authorization"].ToString();

????????if (!authHeader.StartsWith("Basic "))

????????{

????????????return Task.FromResult(

????????????????AuthenticateResult.Fail("Authorization header value is not in a correct format"));

????????}

????????var base64EncodedValue = authHeader["Basic ".Length..];

????????var userNamePassword = Encoding.UTF8.GetString(Convert.FromBase64String(base64EncodedValue));

????????var userName = userNamePassword.Split(':')[0];

????????var password = userNamePassword.Split(':')[1];

????????var user = User.AllUsers.FirstOrDefault(u => u.UserName == userName && u.Password == password);

????????if (user == null)

????????{

????????????return Task.FromResult(AuthenticateResult.Fail("Invalid username or password."));

????????}

????????var claims = new[]

????????{

????????????new Claim(ClaimTypes.NameIdentifier, user.UserName),

????????????new Claim(ClaimTypes.Role, string.Join(',', user.Roles)),

????????????new Claim(ClaimTypes.UserData, user.Age.ToString())

????????};

????????var claimsPrincipal =

????????????new ClaimsPrincipal(new ClaimsIdentity(

????????????????claims,

????????????????"Basic",

????????????????ClaimTypes.NameIdentifier, ClaimTypes.Role));

????????var ticket = new AuthenticationTicket(claimsPrincipal, new AuthenticationProperties

????????{

????????????IsPersistent = false

????????}, "Basic");

????????return Task.FromResult(AuthenticateResult.Success(ticket));

????}

}

在上面的HandleAuthenticateAsync代碼中,首先對(duì)Request Header進(jìn)行合法性校驗(yàn),比如是否包含Authorization的Header,以及Authorization Header的值是否合法,然后,將Authorization Header的值解析出來,通過Base64解碼后得到用戶名和密碼,與用戶信息數(shù)據(jù)庫里的記錄進(jìn)行匹配,找到匹配的用戶。接下來,基于找到的用戶對(duì)象,創(chuàng)建ClaimsPrincipal,并基于ClaimsPrincipal創(chuàng)建AuthenticationTicket然后返回。

這段代碼中有幾點(diǎn)值得關(guān)注:

  • BasicAuthenticationSchemeOptions本身只是一個(gè)繼承于AuthenticationSchemeOptions的POCO類。AuthenticationSchemeOptions類通常是為了向AuthenticationHandler提供一些輸入?yún)?shù)。比如,在某個(gè)自定義的用戶認(rèn)證邏輯中,可能需要通過環(huán)境變量讀入字符串解密的密鑰信息,此時(shí)就可以在這個(gè)自定義的AuthenticationSchemeOptions中增加一個(gè)Passphrase的屬性,然后在Startup.cs中,通過service.AddScheme調(diào)用將從環(huán)境變量中讀取的Passphrase的值傳入

  • 除了將用戶名作為Identity Claim加入到ClaimsPrincipal中之外,我們還將用戶的角色(Role)用逗號(hào)串聯(lián)起來,作為Role Claim添加到ClaimsPrincipal中,目前我們暫時(shí)不需要涉及角色相關(guān)的內(nèi)容,但是先將這部分代碼放在這里以備后用。另外,我們將用戶的年齡(Age)放在UserData claim中,在實(shí)際中應(yīng)該是在用戶對(duì)象上有該用戶的出生日期,這樣比較合理,然后這個(gè)出生日期應(yīng)該放在DateOfBirth claim中,這里為了簡(jiǎn)單起見,就先放在UserData中了

  • ClaimsPrincipal的構(gòu)造函數(shù)中,可以指定哪個(gè)Claim類型可被用作用戶名稱,而哪個(gè)Claim類型又可被用作用戶的角色。例如上面代碼中,我們選擇NameIdentifier類型作為用戶名,而Role類型作為用戶角色,于是,在接下來的Controller代碼中,由NameIdentifier這種Claim所指向的字符串值,就會(huì)被看成用戶名而被綁定到Identity.Name屬性上

  • 回過頭來看看BasicAuthenticationSchemeOptions類,它的實(shí)現(xiàn)非常簡(jiǎn)單:

    1

    2

    3

    4

    public class BasicAuthenticationSchemeOptions : AuthenticationSchemeOptions

    {

    }

    接下來,在Startup.cs文件里,修改ConfigureServices和Configure方法,加入Authentication的支持:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    public void ConfigureServices(IServiceCollection services)

    {

    ????services.AddControllers();

    ????services.AddSwaggerGen(c =>

    ????{

    ????????c.SwaggerDoc("v1", new OpenApiInfo { Title = "WebAPIAuthSample", Version = "v1" });

    ????});

    ????services.AddAuthentication("Basic")

    ????????.AddScheme<BasicAuthenticationSchemeOptions, BasicAuthenticationHandler>(

    ????????????"Basic", options => { });

    }

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)

    {

    ????if (env.IsDevelopment())

    ????{

    ????????app.UseDeveloperExceptionPage();

    ????????app.UseSwagger();

    ????????app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "WebAPIAuthSample v1"));

    ????}

    ????app.UseHttpsRedirection();

    ????app.UseRouting();

    ????app.UseAuthentication();

    ????app.UseEndpoints(endpoints => { endpoints.MapControllers(); });

    }

    現(xiàn)在,運(yùn)行應(yīng)用程序,在WeatherForecastController的Get方法上設(shè)置斷點(diǎn),然后執(zhí)行上面的curl命令,當(dāng)斷點(diǎn)被命中時(shí),觀察this.User對(duì)象可以發(fā)現(xiàn),IsAuthenticated屬性變?yōu)榱藅rue,Name屬性也被設(shè)置為用戶名:

    大多數(shù)身份認(rèn)證框架會(huì)提供一些輔助方法來幫助開發(fā)人員將AuthenticationHandler注冊(cè)到應(yīng)用程序中,例如,基于JWT持有者身份認(rèn)證的框架會(huì)提供一個(gè)AddJwtBearer的方法,將JWT身份認(rèn)證機(jī)制加入到應(yīng)用程序中,它本質(zhì)上也是調(diào)用AddScheme方法來完成AuthenticationHandler的注冊(cè)。在這里,我們也可以自定義一個(gè)AddBasicAuthentication的擴(kuò)展方法:

    1

    2

    3

    4

    5

    6

    7

    public static class Extensions

    {

    ????public static AuthenticationBuilder AddBasicAuthentication(this AuthenticationBuilder builder)

    ????????=> builder.AddScheme<BasicAuthenticationSchemeOptions, BasicAuthenticationHandler>(

    ????????????"Basic",

    ????????????options => { });

    }

    然后修改Starup.cs文件,將ConfigureServices方法改為下面這個(gè)樣子:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    public void ConfigureServices(IServiceCollection services)

    {

    ????services.AddControllers();

    ????services.AddSwaggerGen(c =>

    ????{

    ????????c.SwaggerDoc("v1", new OpenApiInfo { Title = "WebAPIAuthSample", Version = "v1" });

    ????});

    ????services.AddAuthentication("Basic").AddBasicAuthentication();

    }

    這樣做的好處是,你可以為開發(fā)人員提供更多比較有針對(duì)性的配置認(rèn)證機(jī)制的編程接口,這對(duì)于一個(gè)認(rèn)證模塊/框架的開發(fā)是一個(gè)很好的設(shè)計(jì)。

    在curl命令中,如果我們沒有指定Authorization Header,或者Authorization Header的值不正確,那么WeatherForecast API仍然可以被調(diào)用,只不過IsAuthenticated屬性為false,也無法從this.User對(duì)象得到用戶信息。其實(shí),阻止未認(rèn)證用戶訪問API并不是認(rèn)證的事情,API被未認(rèn)證(或者說未登錄)用戶訪問也是合理的事情,因此,要實(shí)現(xiàn)對(duì)于未認(rèn)證用戶的訪問限制,就需要進(jìn)一步實(shí)現(xiàn)ASP.NET Core Web API的另一個(gè)安全控制組件:授權(quán)

    授權(quán)

    認(rèn)證相比,授權(quán)的邏輯會(huì)比較復(fù)雜:認(rèn)證更多是技術(shù)層面的事情,而授權(quán)則更多地與業(yè)務(wù)相關(guān)。市面上常見的認(rèn)證機(jī)制頂多也就是那么幾種或者十幾種,而授權(quán)的方式則是多樣化的,因?yàn)椴煌琣pp不同業(yè)務(wù),對(duì)于app資源訪問的授權(quán)需求是不同的。最為常見的一種授權(quán)方式就是RBAC(Role Based Access Control,基于角色的訪問控制),它定義了什么樣的角色對(duì)于什么資源具有怎樣的訪問權(quán)限。在RBAC中,不同的用戶都被賦予了不同的角色,而為了管理方便,又為具有相同資源訪問權(quán)限的用戶設(shè)計(jì)了用戶組,而將訪問控制設(shè)置在用戶組上,更進(jìn)一步,組和組之間還可以有父子關(guān)系。

    請(qǐng)注意上面的黑體字,每一個(gè)黑體標(biāo)注的詞語都是授權(quán)相關(guān)的概念,在ASP.NET Core中,每一個(gè)授權(quán)需求(Authorization Requirement)對(duì)應(yīng)一個(gè)實(shí)現(xiàn)IAuthorizationRequirement的類,并由AuthorizationHandler負(fù)責(zé)處理相應(yīng)的授權(quán)邏輯。簡(jiǎn)單地理解,授權(quán)需求表示什么樣的用戶才能夠滿足被授權(quán)的要求,或者說什么樣的用戶才能夠通過授權(quán)去訪問資源。一個(gè)授權(quán)需求往往僅定義并處理一種特定的授權(quán)邏輯,ASP.NET Core允許將多個(gè)授權(quán)需求組合成授權(quán)策略(Authorization Policy)然后應(yīng)用到被訪問的資源上,這樣的設(shè)計(jì)可以保證授權(quán)需求的設(shè)計(jì)與實(shí)現(xiàn)都是小粒度的,從而分離不同授權(quán)需求的關(guān)注點(diǎn)。在授權(quán)策略的層面,通過組合不同授權(quán)需求從而達(dá)到靈活實(shí)現(xiàn)授權(quán)業(yè)務(wù)的目的。

    比如:假設(shè)app中有的API只允許管理員訪問,而有的API只允許滿18周歲的用戶訪問,而另外的一些API需要用戶既是超級(jí)管理員又滿18歲。那么就可以定義兩種Authorization Requirement:GreaterThan18Requirement和SuperAdminRequirement,然后設(shè)計(jì)三種Policy:第一種只包含GreaterThan18Requirement,第二種只包含SuperAdminRequirement,第三種則同時(shí)包含這兩種Requirement,最后將這些不同的Policy應(yīng)用到不同的API上就可以了。

    回到我們的案例代碼,首先定義兩個(gè)Requirement:SuperAdminRequirement和GreaterThan18Requirement:

    1

    2

    3

    4

    5

    6

    public class SuperAdminRequirement : IAuthorizationRequirement

    {

    }

    public class GreaterThan18Requirement : IAuthorizationRequirement

    {

    }

    然后分別實(shí)現(xiàn)SuperAdminAuthorizationHandle和GreaterThan18AuthorizationHandler:



    實(shí)現(xiàn)邏輯也非常清晰:在GreaterThan18AuthorizationHandler中,通過UserData claim獲得年齡信息,如果年齡大于18,則授權(quán)成功;在SuperAdminAuthorizationHandler中,通過Role claim獲得用戶所處的角色,如果角色中包含super_admin,則授權(quán)成功。接下來就需要將這兩個(gè)Requirement加到所需的Policy中,然后注冊(cè)到應(yīng)用程序里:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    public void ConfigureServices(IServiceCollection services)

    {

    ????services.AddControllers();

    ????services.AddSwaggerGen(c =>

    ????{

    ????????c.SwaggerDoc("v1", new OpenApiInfo { Title = "WebAPIAuthSample", Version = "v1" });

    ????});

    ????services.AddAuthentication("Basic").AddBasicAuthentication();

    ????services.AddAuthorization(options =>

    ????{

    ????????options.AddPolicy("AgeMustBeGreaterThan18", builder =>

    ????????{

    ????????????builder.Requirements.Add(new GreaterThan18Requirement());

    ????????});

    ????????options.AddPolicy("UserMustBeSuperAdmin", builder =>

    ????????{

    ????????????builder.Requirements.Add(new SuperAdminRequirement());

    ????????});

    ????});

    ????services.AddSingleton<IAuthorizationHandler, GreaterThan18AuthorizationHandler>();

    ????services.AddSingleton<IAuthorizationHandler, SuperAdminAuthorizationHandler>();

    }

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)

    {

    ????if (env.IsDevelopment())

    ????{

    ????????app.UseDeveloperExceptionPage();

    ????????app.UseSwagger();

    ????????app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "WebAPIAuthSample v1"));

    ????}

    ????app.UseHttpsRedirection();

    ????app.UseRouting();

    ????app.UseAuthentication();

    ????app.UseAuthorization();

    ????app.UseEndpoints(endpoints => { endpoints.MapControllers(); });

    }

    在ConfigureServices方法中,我們定義了兩種Policy:AgeMustBeGreaterThan18和UserMustBeSuperAdmin,最后,在API Controller或者Action上,應(yīng)用AuthorizeAttribute,從而指定所需的Policy即可。比如,如果希望WeatherForecase API只有年齡大于18歲的用戶才能訪問,那么就可以這樣做:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    [HttpGet]

    [Authorize(Policy = "AgeMustBeGreaterThan18")]

    public IEnumerable<WeatherForecast> Get()

    {

    ????var rng = new Random();

    ????return Enumerable.Range(1, 5).Select(index => new WeatherForecast

    ????????{

    ????????????Date = DateTime.Now.AddDays(index),

    ????????????TemperatureC = rng.Next(-20, 55),

    ????????????Summary = Summaries[rng.Next(Summaries.Length)]

    ????????})

    ????????.ToArray();

    }

    運(yùn)行程序,假設(shè)有三個(gè)用戶:daxnet、admin和foo,它們的BASE64認(rèn)證信息分別為:

    • daxnet:ZGF4bmV0OnBhc3N3b3Jk

    • admin:YWRtaW46YWRtaW4=

    • foo:Zm9vOmJhcg==

    那么,相同的curl命令,指定不同的用戶認(rèn)證信息時(shí),得到的結(jié)果是不一樣的:

    daxnet用戶年齡小于18歲,所以訪問API不成功,服務(wù)端返回403:

    admin用戶滿足年齡大于18歲的條件,所以可以成功訪問API:

    而foo用戶本身沒有在系統(tǒng)中注冊(cè),所以服務(wù)端返回401,表示用戶沒有認(rèn)證成功:

    小結(jié)

    本文簡(jiǎn)要介紹了ASP.NET Core中用戶身份認(rèn)證與授權(quán)的基本實(shí)現(xiàn)方法,幫助初學(xué)者或者需要使用這些功能的開發(fā)人員快速理解這部分內(nèi)容。ASP.NET Core的認(rèn)證與授權(quán)體系非常靈活,能夠集成各種不同的認(rèn)證機(jī)制與授權(quán)方式,文章也無法進(jìn)行全面詳細(xì)的介紹。不過無論何種框架哪種實(shí)現(xiàn),它的實(shí)現(xiàn)基礎(chǔ)也就是本文所介紹的這些內(nèi)容,如果打算自己開發(fā)一套認(rèn)證和授權(quán)的框架,也可以參考本文。

    總結(jié)

    以上是生活随笔為你收集整理的快速理解ASP.NET Core的认证与授权的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    免费看三级黄色片 | 国产精品一区二区久久精品爱涩 | 久久久久久久久久久影视 | 免费看久久 | av网站免费线看精品 | 久久久久久高清 | 国产精品免费久久久 | 国产精品高 | 日韩久久在线 | 狠狠躁夜夜a产精品视频 | 天天添夜夜操 | 五月天久久久久 | 91麻豆文化传媒在线观看 | 国产成人综合图片 | av资源免费看 | 欧美视频在线二区 | 最新久久免费视频 | 天天干天天天天 | 日韩91精品 | av日韩国产 | 97国产一区二区 | 久久久久久久久国产 | 啪啪av在线 | 国产在线观看h | 在线成人一区 | 色天天综合久久久久综合片 | 亚洲精品在线播放视频 | 日本三级全黄少妇三2023 | 中文字幕色播 | 在线成人免费电影 | 日韩av专区| 一区二区三区在线看 | www..com黄色片| 欧美日本一二三 | 婷婷激情5月天 | 亚洲精品成人av在线 | a爱爱视频| 日韩久久久久久久久久久久 | 又粗又长又大又爽又黄少妇毛片 | 日产中文字幕 | av短片在线 | 激情喷水 | a级国产片| 蜜臀久久99精品久久久无需会员 | 久久永久视频 | 国产麻豆精品久久一二三 | 美女久久久久久久久久 | 久久成人国产精品一区二区 | 国产精品观看视频 | 九九热免费视频在线观看 | 美女黄频免费 | 国产91精品久久久久 | 日韩在线免费视频 | 亚洲成人一二三 | 高清一区二区三区 | 国产精品1区2区在线观看 | 极品美女被弄高潮视频网站 | 91成人小视频 | 激情久久久久久久久久久久久久久久 | 久久久久综合 | 日韩性色 | 国产一级精品绿帽视频 | 久久成人亚洲欧美电影 | 在线看成人 | 欧美日韩亚洲第一 | 日韩av手机在线观看 | 久久精品99国产精品日本 | 亚洲天堂在线观看完整版 | 人人网人人爽 | 国产精品一区二区你懂的 | 日韩电影在线视频 | 在线中文字幕播放 | 国产一区二区在线播放 | 成人黄视频 | 日本aa在线 | 国产99久久九九精品 | 久久99国产精品久久99 | 国产一级电影网 | 在线视频第一页 | 久久人人爽人人爽人人 | 亚洲视频免费 | 免费观看成人 | 97网站| 国产色区 | 免费视频97 | 91女神的呻吟细腰翘臀美女 | 91麻豆免费视频 | 国产剧情久久 | 在线视频区 | 国产精品免费视频一区二区 | 成人免费大片黄在线播放 | 日韩精品极品视频 | 黄色视屏av | 成人精品国产免费网站 | 欧美激情精品久久久久久免费 | 午夜狠狠操| 国产欧美久久久精品影院 | 国产视频二区三区 | 国产精品乱码在线 | 国产精品女同一区二区三区久久夜 | 久久久精品欧美一区二区免费 | 国产最新视频在线观看 | 国产一卡二卡四卡国 | 久草在线综合网 | 天天干人人 | 国产原厂视频在线观看 | 欧美大片在线观看一区 | 日韩精品一区二区三区第95 | 成年人在线 | 91黄视频在线观看 | 婷婷久草 | 奇米影视777影音先锋 | 中文字幕精品一区二区精品 | 国产999精品久久久影片官网 | 亚洲精品在线免费 | 免费看片网页 | 色亚洲激情 | 超碰97在线资源站 | 美女一二三区 | 久久久香蕉视频 | 国产91免费观看 | 欧美二区三区91 | 国产精品婷婷 | 久久久久日本精品一区二区三区 | 女人18精品一区二区三区 | 久久午夜色播影院免费高清 | 久久国产精品区 | 国产精品免费久久久久久 | 一区二区三区四区五区在线 | 99久在线精品99re8热视频 | 久久久久久久久久伊人 | 日韩精品第1页 | 亚洲成人二区 | 韩国av免费观看 | 亚洲欧洲精品一区二区精品久久久 | 成年人免费电影 | 国产在线免费观看 | 天堂在线一区 | 国产精品成人免费一区久久羞羞 | 91大神精品视频在线观看 | 午夜三级在线 | 99久久精品免费看国产 | 国产成人一区二区三区电影 | 香蕉影院在线观看 | 91麻豆精品国产自产 | 五月激情片 | 九色91av| 91精品久久久久久久99蜜桃 | 精品伦理一区二区三区 | 天天射综合 | 国产精品18久久久久久久久 | 久久精品视频观看 | 日韩资源在线观看 | 国产三级精品三级在线观看 | 久久九九国产精品 | 国产精品一级在线 | 久久久香蕉视频 | 日本字幕网 | 密桃av在线 | 日韩毛片在线一区二区毛片 | 日韩资源在线播放 | 国产精品久久久久aaaa | 射射色| 中文字幕在线不卡国产视频 | 精品国产免费一区二区三区五区 | 婷婷新五月 | 国产福利91精品一区 | 国产精品无 | 久草电影免费在线观看 | 97精品欧美91久久久久久 | 精品99在线视频 | 成人久久久精品国产乱码一区二区 | 欧美日韩国产精品久久 | 免费看搞黄视频网站 | 精品女同一区二区三区在线观看 | 超碰公开在线 | 精品一区二区电影 | 午夜国产成人 | 制服丝袜成人在线 | 久久爱综合 | 韩日视频在线 | 伊人天堂网 | 热久久国产精品 | 在线观看亚洲专区 | 99精品99 | 最新中文字幕视频 | 最新午夜 | 国产成人精品一区二区在线观看 | 精品日韩av| 成年人在线电影 | 亚洲区另类春色综合小说校园片 | 91一区二区在线 | 天天色天天射天天干 | 久久99精品国产一区二区三区 | 五月婷婷操| 热久久精品在线 | 精品国产亚洲一区二区麻豆 | 视频福利在线 | 91精品国产自产91精品 | 天天天操天天天干 | 香蕉91视频 | 日韩网站在线 | 午夜三级福利 | 97超级碰 | 中文字幕在线观看的网站 | 在线观看黄色小视频 | 成人黄色在线 | 91精品国产网站 | 香蕉影院在线播放 | 日韩羞羞| 久久伦理| 99久久婷婷国产综合亚洲 | 日韩综合一区二区 | 日日干夜夜爱 | 免费性网站 | 久久精品久久精品 | 中文字幕一区在线观看视频 | 久久成人午夜视频 | 91在线精品视频 | 成人不用播放器 | 99在线精品免费视频九九视 | 99久久日韩精品视频免费在线观看 | 日韩精品短视频 | 中文字幕免费高清在线观看 | 精品国产免费看 | 国产一区视频在线观看免费 | 中文十次啦 | 亚洲精品五月天 | 91精品视频一区二区三区 | 中文字幕乱码日本亚洲一区二区 | 亚洲精品乱码久久久久久9色 | 欧美另类交人妖 | 欧美极品一区二区三区 | 国产亚洲精品久久久久久久久久 | 99热在线国产精品 | 国内精品小视频 | 国产日产在线观看 | 狠狠狠狠狠狠操 | 免费av视屏 | 在线性视频日韩欧美 | 国产精品毛片久久久久久久久久99999999 | 国产午夜精品久久久久久久久久 | 欧美性生活一级片 | 天天射狠狠干 | 国内精品久久久久久久久久清纯 | 五月精品| 毛片的网址 | 91完整版观看 | 日本99久久| 青春草免费在线视频 | 欧美影片 | 天天草天天插 | 蜜臀久久99静品久久久久久 | 久草www| 日韩手机在线 | 亚洲精品免费在线播放 | 国产精品免费久久久久久久久久中文 | 久草a在线 | 999久久久| 亚洲精品一区二区精华 | 日本大片免费观看在线 | 99高清视频有精品视频 | 美女久久久久 | 亚洲最大av网站 | 狠狠地日 | 插婷婷 | a视频免费在线观看 | 久久精品91视频 | 久草视频精品 | 奇米影视在线99精品 | 午夜12点| 日本少妇高清做爰视频 | 91亚色视频 | 狠狠狠色丁香婷婷综合久久88 | 国产精品久久久久久久久久久久午夜 | 久久综合加勒比 | 天天爱天天色 | 日本性xxxxx| 狠狠操操 | 亚洲无吗av | av色网站 | 在线播放你懂 | 日日日天天天 | 伊人av综合 | 亚洲精品看片 | 国产高清免费av | 韩国视频一区二区三区 | 亚洲最新毛片 | 欧美一级特黄高清视频 | 欧美一区二区在线刺激视频 | 久久老司机精品视频 | 午夜视频在线观看欧美 | 久久人人爽人人片 | 人人澡人人添人人爽一区二区 | 国产麻豆果冻传媒在线观看 | 久久综合色一综合色88 | 久久久99精品免费观看乱色 | 日日夜日日干 | av在线进入 | 成人毛片一区 | 国产无遮挡猛进猛出免费软件 | 久久午夜免费视频 | 青青河边草观看完整版高清 | 午夜婷婷在线观看 | 黄色在线观看免费 | 免费三级a | 在线观看深夜视频 | 一区二区三区 亚洲 | 亚洲视频 中文字幕 | 日韩av不卡在线播放 | 精品国产乱码一区二区三区在线 | 97香蕉视频 | 97超碰在线资源 | 亚洲在线网址 | 久久国产日韩 | 亚洲最大成人免费网站 | 91网在线看| 一本一本久久a久久精品综合小说 | 精品国产亚洲在线 | 国产精品久久久久久久电影 | 欧美日韩在线精品一区二区 | 在线成人一区二区 | 粉嫩av一区二区三区入口 | 国际精品久久 | 国产视频1 | 丁香六月中文字幕 | av电影久久 | 六月丁香婷 | 久久久久久久久久久影视 | 日韩视频中文 | 日韩影视精品 | 日韩黄色av网站 | 亚洲国产99 | 五月天久久久久 | 久久久久久久久久福利 | 国产黄色片免费观看 | av电影免费看 | 九月婷婷色 | 97超碰.com| 狠狠色噜噜狠狠狠狠2021天天 | 狠狠干夜夜操天天爽 | 精品视频成人 | 久久视影 | 日韩黄色av网站 | 91在线观看视频网站 | 中文字幕色在线视频 | 精品福利网站 | 天天射,天天干 | 色噜噜在线观看视频 | 欧美日韩中文字幕在线视频 | 激情五月综合网 | 日本女人在线观看 | 日韩在线欧美在线 | 天天综合日日夜夜 | 国产一区二区三区午夜 | 日日日网 | 久久视屏网 | 亚洲成av人片在线观看 | 456成人精品影院 | 久久噜噜少妇网站 | 久久久久久久久久久久久影院 | 美女国内精品自产拍在线播放 | 精品国产免费久久 | 国内小视频在线观看 | 2024av| 中文字幕一区二区三区四区久久 | 91九色最新 | 中文字幕一区2区3区 | 在线免费看黄网站 | 国产麻豆视频免费观看 | 国产xx在线 | 欧美精品一区二区在线播放 | 国产精品久久久久久久久久久久午夜 | 成人小视频在线观看免费 | 992tv人人网tv亚洲精品 | 91手机电视 | 久久久久久久影视 | 一区二区三区免费在线播放 | 日韩精品 在线视频 | 免费看黄色大全 | 国产黑丝袜在线 | 九精品 | 国产精品永久 | 亚洲视频每日更新 | 人人天天夜夜 | 色999在线| 成人app在线免费观看 | 亚洲理论电影 | 久久综合婷婷国产二区高清 | 日本精品一区二区三区在线观看 | 午夜久久久影院 | 8090yy亚洲精品久久 | www.99在线观看 | 911精品美国片911久久久 | 欧美a在线免费观看 | 国产成人一区二区三区在线观看 | 2018亚洲男人天堂 | 国产精品永久免费观看 | 亚洲视频免费在线看 | 日韩精品aaa | 久久手机免费观看 | 亚洲高清国产视频 | 亚洲一区二区天堂 | aav在线 | 永久免费看av | 色视频国产直接看 | 国产精品视频最多的网站 | 丁香色婷婷 | 欧美成人精品欧美一级乱 | 国产精品网站一区二区三区 | 欧美xxxxx在线视频 | av网站手机在线观看 | 2022国产精品视频 | 在线视频麻豆 | 日韩在线资源 | 久草网在线视频 | 五月婷婷丁香六月 | 亚洲视频99 | 玖玖玖精品 | 国产日韩欧美在线免费观看 | 91福利视频免费观看 | 久久久久北条麻妃免费看 | 久久99国产精品免费网站 | 色噜噜在线观看视频 | 成人影音av | 久久精品一二三区 | 国产成人免费观看久久久 | 国产精品成人自拍 | 毛片网在线观看 | 亚洲国产剧情av | 亚洲视频大全 | 亚洲更新最快 | 久久久免费看视频 | 国产一级片一区二区三区 | 狠狠色狠狠色综合日日小说 | 国产精品免费不卡 | 亚洲jizzjizz日本少妇 | 日本护士三级少妇三级999 | 亚洲国产视频直播 | 日韩精品三区四区 | 久草视频精品 | 精品久久久久国产免费第一页 | 国产亚洲精品美女久久 | 久久午夜精品 | 日韩一区二区三区视频在线 | 欧美精品在线一区二区 | 五月婷婷六月丁香激情 | 久久综合之合合综合久久 | 免费看黄色91 | 五月婷婷视频在线 | 中文字幕第一页在线播放 | 色综合久久综合网 | 黄色成人在线观看 | 日韩视频一 | 中文字幕视频三区 | 亚洲黄色在线观看 | 久久国产麻豆 | 一二三区视频在线 | 国产尤物视频在线 | 免费久久片 | 久人人 | 日本丰满少妇免费一区 | 99久久精品国产一区 | 日韩网站视频 | 欧洲视频一区 | a级国产乱理论片在线观看 特级毛片在线观看 | 久久精品99国产精品日本 | 91超级碰| 激情 亚洲| 亚洲国产免费av | 黄色大片网 | 狠狠色丁香婷婷综合基地 | 99久久久久久国产精品 | 亚洲经典精品 | 深夜免费福利网站 | 黄色大片中国 | 91精品国产一区二区在线观看 | 国产三级午夜理伦三级 | 国产精品va在线观看入 | 国产999精品久久久久久绿帽 | 久久亚洲私人国产精品 | 日本久久中文字幕 | 国产精品麻豆果冻传媒在线播放 | www欧美色| 91九色蝌蚪 | 二区中文字幕 | 免费色视频在线 | 国产91精品在线播放 | 丁香九月激情 | 91在线视频免费观看 | 国产香蕉av| 四虎在线免费观看视频 | 99久久久国产精品免费观看 | 国产精品男女啪啪 | 久久综合久色欧美综合狠狠 | 国产生活一级片 | 中文字幕国产 | 最新日韩在线观看 | av免费播放| 亚洲成人网在线 | 91精品免费在线视频 | 久久九九网站 | 亚洲一级理论片 | 午夜色站 | www.久久爱.cn | 偷拍视频一区 | 国产香蕉视频在线观看 | 日韩免费一区二区在线观看 | 国内精自线一二区永久 | 亚洲成人av影片 | av超碰在线 | 麻豆久久久久久久 | 中文字幕永久 | 中文av网站 | 免费视频区 | 激情网五月 | 国产美女在线免费观看 | 黄色福利视频网站 | 欧美一区二区三区不卡 | 久久视频这里有久久精品视频11 | 色偷偷中文字幕 | 久久午夜网 | 久久精品伊人 | 深爱五月激情网 | 九九色视频 | 超碰99人人 | 天干啦夜天干天干在线线 | 国产精品手机在线 | 五月婷久久 | 中文字幕av在线免费 | 麻豆视频观看 | 成人av免费在线观看 | 91热在线 | 中文在线字幕免 | 毛片在线播放网址 | 免费av在| 91精品黄色 | 黄色免费大全 | 97热视频| 亚洲女同ⅹxx女同tv | 国产精品 999 | 亚洲精品午夜一区人人爽 | 91久久国产综合精品女同国语 | 国产福利免费看 | 欧美日韩精品在线免费观看 | 久久这里只精品 | 欧美日韩亚洲第一页 | 能在线看的av | 亚州日韩中文字幕 | 久久这里只有精品23 | 综合国产在线观看 | 免费高清在线观看成人 | 亚洲精品在线观看中文字幕 | 欧美日韩久久不卡 | 欧美精品久久久久久久久久 | 日本韩国中文字幕 | 久久久久久美女 | 日日婷婷夜日日天干 | 成人黄色在线电影 | 国产精品自产拍在线观看蜜 | 国产精品xxxx18a99 | 毛片随便看 | 亚洲精品麻豆视频 | 麻豆国产网站 | 91在线看视频免费 | 麻豆视频观看 | 久久久影视 | 最新超碰在线 | 色婷婷综合视频在线观看 | 国产日产精品一区二区三区四区的观看方式 | 日韩久久激情 | 欧美另类xxx| 激情综合网五月激情 | 激情五月婷婷综合 | 特级毛片网站 | 精品一区二三区 | 国产免费美女 | 天天爽天天摸 | 久久精品系列 | 97人人模人人爽人人喊中文字 | 亚洲精品女 | 夜色资源网| 九九九国产 | 精品国产电影一区二区 | 521色香蕉网站在线观看 | 国产91成人 | 日韩精品国产一区 | 久久久久久久久久久久久久av | 日韩动态视频 | 精品国产免费久久 | 91高清视频在线 | 正在播放国产91 | h网站免费在线观看 | 日韩精品在线一区 | 中文字幕在线观 | 日b黄色片 | 麻豆免费在线视频 | 娇妻呻吟一区二区三区 | 日韩系列在线 | 日韩精品不卡 | 欧洲精品亚洲精品 | 亚洲精品美女 | 一级一片免费观看 | 激情五月婷婷丁香 | 久久综合精品国产一区二区三区 | 夜夜爽www | 国产日韩欧美在线看 | 午夜精品一区二区三区免费 | 亚洲区二区 | 国产成人三级 | 国产高清福利在线 | 91视频com | 成人午夜电影久久影院 | 波多野结衣理论片 | 国产精品久久久久免费a∨ 欧美一级性生活片 | 天天干中文字幕 | 午夜私人影院久久久久 | 精品久久久99 | 欧美色图p | 久久永久免费 | 日韩天天综合 | 亚洲精品美女在线观看 | 在线观看中文 | 丁香伊人网 | 天天天色| 精品国偷自产国产一区 | 久久精品久久精品久久精品 | 亚洲欧美日韩在线一区二区 | 欧美日韩在线观看不卡 | 在线成人一区 | 一区二区三区精品在线视频 | 欧美91片| 日本狠狠色 | 久久久免费av | 岛国精品一区二区 | 国产精品一区二区吃奶在线观看 | 在线岛国av | 欧美色图视频一区 | 国产精品女人久久久久久 | 国产999精品久久久久久麻豆 | 韩日精品在线观看 | 911免费视频 | 三上悠亚一区二区在线观看 | 成人av高清在线 | 天天插日日操 | 亚洲自拍av在线 | 久久精品理论 | 91视频在线免费观看 | 欧美黑人xxxx猛性大交 | 九九有精品 | 中文字幕 成人 | 国产一区二区在线免费观看 | 中文字幕日韩国产 | 婷婷视频在线 | 亚洲国产午夜 | 欧洲高潮三级做爰 | 日韩精品免费在线播放 | 国产精品美女久久久久久免费 | 国产免费不卡av | 伊人射 | 国语麻豆 | 国产99中文字幕 | av在线成人 | 久久精品一区二区国产 | 在线观看成人福利 | 日韩 在线a | 91在线视频一区 | 国产精品一区一区三区 | 天天舔夜夜操 | 波多野结衣亚洲一区二区 | a在线免费观看视频 | 国产精品一区二区白浆 | 日韩欧美综合在线视频 | 日韩成人在线免费观看 | 免费在线一区二区 | 日韩欧美精品在线 | 五月婷丁香网 | 深夜国产在线 | 在线亚洲天堂网 | 日韩久久久久久久久久 | 国产香蕉视频 | 在线看中文字幕 | 成人在线视频论坛 | 精品美女久久 | 亚洲精品国产精品国 | 精品视频中文字幕 | 午夜国产福利在线观看 | 日韩精品视频免费专区在线播放 | 亚洲精选在线 | www.91成人| 久久毛片视频 | 在线观看免费91 | 日韩在线视频在线观看 | 四虎永久国产精品 | 国产精品 国内视频 | 91亚色视频 | 日本黄色免费网站 | 久久久久久国产精品 | 欧洲亚洲激情 | 色婷婷激情电影 | 国产一区二区免费 | 国产视频91在线 | 最近最新最好看中文视频 | 国产精品wwwwww | 天堂网一区二区三区 | 欧美高清视频不卡网 | www亚洲精品 | 国产成人av电影在线观看 | 国产成人免费在线观看 | 亚洲午夜小视频 | 精品视频免费播放 | 色综合激情网 | 国产精品初高中精品久久 | 综合天堂av久久久久久久 | 国产黄色高清 | 欧美日韩在线视频一区二区 | 夜夜躁狠狠躁日日躁视频黑人 | 一区二区视频在线播放 | 欧美日韩国产网站 | 亚洲最新av网站 | 亚洲精品在线看 | 国产麻豆精品一区二区 | 久久国内精品 | 色综合久久99 | 午夜精品一区二区三区四区 | 亚洲 欧洲av | 有码中文字幕 | 亚洲精品视频大全 | 有码中文在线 | 中中文字幕av在线 | 91传媒免费在线观看 | 久久亚洲精品国产亚洲老地址 | 免费三级骚 | 日韩免费在线观看网站 | 成人资源在线播放 | 精品久久久久久国产91 | 在线免费黄色av | 欧美日韩精品影院 | 五月婷婷影院 | 96久久久 | 成人黄性视频 | 精品国产一区二区久久 | 97精品国产| 精品国产乱子伦一区二区 | 五月天久久久久久 | 亚洲国产精品第一区二区 | 美女网站视频免费黄 | 久久久免费在线观看 | 欧美在线视频一区二区三区 | 亚洲午夜精品在线观看 | 不卡中文字幕av | 婷婷色婷婷 | 91看片在线观看 | 日韩精品中文字幕在线播放 | 这里只有精品视频在线 | 亚洲深爱激情 | av解说在线观看 | 五月婷婷国产 | 亚洲精品在线免费 | 久久精品中文字幕少妇 | 天天操网址 | 亚洲国产av精品毛片鲁大师 | 黄色av电影一级片 | 国产视频二区三区 | 久久精彩视频 | 国产精品久久久久久久久久东京 | 日韩久久久久 | 久99久精品 | 麻豆视频国产 | 色永久免费视频 | 欧美精品在线观看 | 五月婷婷av在线 | 日韩视频1 | 超碰免费公开 | 国产日韩欧美在线播放 | 国产精品一区二区久久国产 | 国产资源免费在线观看 | 又黄又刺激视频 | 国产亚洲视频中文字幕视频 | 天天干,天天射,天天操,天天摸 | 探花视频在线观看+在线播放 | 麻豆视传媒官网免费观看 | 999久久国产精品免费观看网站 | 成人黄色毛片视频 | 天天拍天天色 | 久久视频在线看 | 综合久色| 97热久久免费频精品99 | 国产精品永久在线观看 | 91精品国产91久久久久福利 | 免费观看全黄做爰大片国产 | 国产不卡在线 | 成 人 黄 色 视频播放1 | 激情综合啪 | 国内揄拍国内精品 | 国产色在线 | 探花视频免费观看 | 中文字幕一区二区三区在线播放 | 日韩色在线 | 人成午夜视频 | 日韩网站在线播放 | 亚洲国产精品激情在线观看 | 免费网站在线观看成人 | 日韩理论在线观看 | 黄色片亚洲 | av在线播放国产 | 天天艹天天操 | 国产成人三级三级三级97 | 香蕉影院在线 | 国产综合香蕉五月婷在线 | 国产精品久久久久久久久久妇女 | 国产一区二区在线免费播放 | 日韩 在线观看 | 亚洲最大av网 | 免费在线观看国产精品 | 热久久国产精品 | 在线视频中文字幕一区 | 国产精品视频你懂的 | 国外av在线| 免费大片黄在线 | 国产一级在线播放 | 久久久在线观看 | 国产3p视频 | 99产精品成人啪免费网站 | 欧美国产亚洲精品久久久8v | 99免费在线观看视频 | 国产精品毛片久久久久久久久久99999999 | 美女很黄免费网站 | 国产999视频在线观看 | 91亚洲国产成人久久精品网站 | 亚洲乱码在线 | 国产福利资源 | 国产精品久久久久婷婷 | 亚洲国产日韩一区 | 91av免费看| 久久成人在线视频 | av在线影视 | 99精品偷拍视频一区二区三区 | 国产不卡在线观看 | 黄色资源在线观看 | 精品国产乱码一区二 | 久久精品美女 | 99色网站 | 国产不卡免费av | 久99热| 久久免费a| 日韩精品极品视频 | 国产丝袜| 色网av | 最新婷婷色| 亚洲va欧洲va国产va不卡 | 国产精品久久久久久久久久99 | 国产亚洲精品久久久久久无几年桃 | 国产成人在线观看 | 91av中文字幕 | 天天爱天天操天天射 | 九九久久久久久久久激情 | 久久美女视频 | 久青草电影| 中文亚洲欧美日韩 | 国产视频精选 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 亚州精品在线视频 | 91网免费看 | 国产在线播放一区二区三区 | a在线播放 | 国产精品99久久久久久久久 | 伊人久在线 | 中文字幕av影院 | 亚洲欧美精品一区二区 | 免费观看日韩av | 成人9ⅰ免费影视网站 | 久久久资源网 | 91国内在线| 最新av在线播放 | 成人a在线观看高清电影 | 免费在线看成人av | 麻豆传媒一区二区 | 成人久久免费视频 | 国产精品一区二区中文字幕 | 香蕉在线视频观看 | 狠狠躁夜夜躁人人爽视频 | 日韩欧美在线视频一区二区三区 | 国产精品免费一区二区三区在线观看 | 日本在线观看一区二区三区 | 91视频一8mav | 国产欧美综合在线观看 | 国产高清av免费在线观看 | 日韩欧美极品 | 精品国内自产拍在线观看视频 | 欧美精品久久久久久久久久白贞 | 日本超碰在线 | 免费看片网站91 | 亚洲欧美日韩一级 | av网站手机在线观看 | 午夜色大片在线观看 | 欧美一级看片 | 超碰人人99 | 色窝资源 | 国产在线精品区 | 日韩精品视频免费专区在线播放 | 国产精品久久久久久久久久99 | 免费视频国产 | 香蕉视频在线看 | 9999在线视频 | 噜噜色官网 | 国产99久久99热这里精品5 | 亚洲成av人影片在线观看 | 日本黄色大片免费看 | 在线国产精品视频 | 超碰官网 | 99精品视频免费看 | 久av电影| 97电影院在线观看 | 精品视频一区在线观看 | 欧美一级在线 | 毛片视频网址 | 欧美日韩xxxxx | 国产97在线播放 | 六月丁香伊人 | 精品一区二区日韩 | 久久成人在线 | 99久久www免费 | 国产亚洲精品久久久久久久久久久久 | 91爱爱网址| 好看的国产精品视频 | 国内精品久久天天躁人人爽 | 日本三级在线观看中文字 | 九九热精品在线 | 国产精品久久久久免费 | 91在线免费视频 | 狠狠的干 | 精品特级毛片 | 久久精品观看 | 婷婷丁香花 | 91理论片午午伦夜理片久久 | 久草在线资源视频 | 黄色高清视频在线观看 | 久久久久国产一区二区 | 亚洲视频2 | 亚洲丁香久久久 | 麻豆国产精品永久免费视频 | 欧美污网站 | 久久久久亚洲精品成人网小说 | 国产亚洲婷婷免费 | 日日夜夜中文字幕 | 99久久精品久久久久久清纯 | 99精品小视频 | 亚洲免费av网站 | 韩国一区在线 | 国产精品毛片网 | 六月色丁香 | 国产日韩精品一区二区三区在线 | 狠狠成人| 精品91在线| 亚洲不卡123 | 五月天色网站 | 又爽又黄又无遮挡网站动态图 | av黄网站 | 精品国产一二三 | 男女视频91 | 久久精品首页 | 夜添久久精品亚洲国产精品 | 免费观看www小视频的软件 | 久久精品在线免费观看 | 手机在线日韩视频 | 久久网站av | 亚洲成色777777在线观看影院 | 久热免费在线 | 久久视频国产精品免费视频在线 | 亚洲最大免费成人网 | 久久精品综合一区 | 亚洲综合视频在线 | 国产97色在线 | 久久免费的视频 | 色综合天天色综合 | 亚洲乱码久久久 | 中文字幕在线观看第一页 | 欧美精品在线一区二区 | 337p日本欧洲亚洲大胆裸体艺术 | 在线看av网址 | 欧美一区二区在线免费观看 | 成人免费电影 | 九九精品在线观看 | 天天摸天天舔 | 久久第四色 | 日韩有码在线播放 | 亚洲第五色综合网 | 91黄色在线视频 | 欧美视频在线观看免费网址 | 日日成人网 | 国产精品一区二区电影 | 精品一区二区在线观看 | 美国av片在线观看 | 国产成人亚洲在线观看 | 一本一本久久aa综合精品 | 国产精品久久久久久久久久免费 | 日韩欧美国产激情在线播放 |