黄a在线观看-黄a在线-黄a大片-黄色片在线看-黄色毛片免费-黄色大片网站

您的位置:首頁技術文章
文章詳情頁

ASP.NET MVC使用Identity增刪改查用戶

瀏覽:163日期:2022-06-09 11:58:25

源碼在這里:https://github.com/darrenji/UseIdentityCRUDUserInMVC,本地下載

在VS2013中創建一個MVC項目,用默認的"無身份驗證"作為身份驗證機制。

通過控制臺下載Bootstrap。

Install-Package -version 3.0.3 bootstrap

下載成功后,在解決方案下的Content和Scripts多了該版本的css和js文件。

把創建項目默認HomeController中的所有Action以及/Views/Home下的所有視圖刪除。

熱熱身

先來做一個簡單練習。

在HomeController中的Index方法中,把一個字典傳遞給視圖。

    public class HomeController : Controller    {public ActionResult Index(){    Dictionary<string, object> data = new Dictionary<string, object>();    data.Add("placeholder", "placeholder");    return View(data);}    }

_Layout.cshtml設置如下:

<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>    <meta charset="utf-8" />    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>ASP.NET Identity實戰</title>    <link href="~/Content/bootstrap.min.css" rel="external nofollow"  rel="stylesheet" />    <link href="~/Content/bootstrap-theme.min.css" rel="external nofollow"  rel="stylesheet" />    <style>.container {padding-top:10px;}.validation-summary-errors{color:red;}    </style></head><body>        <div>@RenderBody()    </div>    @Scripts.Render("~/bundles/jquery")    @Scripts.Render("~/bundles/bootstrap")    @RenderSection("scripts", required: false)</body>

Home/Index.cshtml視圖中:

@{    ViewBag.Title = "Index";    Layout = "~/Views/Shared/_Layout.cshtml";}<div>    <div>用戶明細</div>    <table>@foreach (string key in Model.Keys){    <tr><th>@key</th><td>@Model[key]</td>    </tr>}    </table></div>

前期準備

分別安裝如下組件。

Install-Package Microsoft.AspNet.Identity.EntityFramework –Version 2.0.0
Install-Package Microsoft.AspNet.Identity.OWIN -Version 2.0.0
Install-Package Microsoft.Owin.Host.SystemWeb -Version 2.1.0

配置Web.config如下:

<?xml version="1.0" encoding="utf-8"?><!--  有關如何配置 ASP.NET 應用程序的詳細信息,請訪問  http://go.microsoft.com/fwlink/?LinkId=301880  --><configuration>  <configSections>    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />  </configSections>  <connectionStrings>    <add name="IdentityDb" providerName="System.Data.SqlClient" connectionString="Data Source=(localdb)\v11.0;Initial Catalog=IdentityDb;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False;MultipleActiveResultSets=True"/></connectionStrings>  <appSettings>    <add key="webpages:Version" value="3.0.0.0" />    <add key="webpages:Enabled" value="false" />    <add key="ClientValidationEnabled" value="true" />    <add key="UnobtrusiveJavaScriptEnabled" value="true" />    <add key="owin:AppStartup" value="WebApplication4.IdentityConfig" />  </appSettings>  <system.web>    <compilation debug="true" targetFramework="4.5" />    <httpRuntime targetFramework="4.5" />  </system.web>  <runtime>    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">      <dependentAssembly><assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" /><bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />      </dependentAssembly>      <dependentAssembly><assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /><bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0" />      </dependentAssembly>      <dependentAssembly><assemblyIdentity name="System.Web.Optimization" publicKeyToken="31bf3856ad364e35" /><bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="1.1.0.0" />      </dependentAssembly>      <dependentAssembly><assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" /><bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />      </dependentAssembly>      <dependentAssembly><assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" /><bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />      </dependentAssembly>    </assemblyBinding>  </runtime>  <entityFramework>    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />    <providers>      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />    </providers>  </entityFramework></configuration>

以上,

  • 增加了connectionStrings節點,將自動創建localdb數據庫
  • 在appSettings節點中增加了一個key為owin:AppStartup項,這是確保OWIN運行正常的全局配置

在Models文件夾下創建如下類。

    public class AppUser : IdentityUser    {    }

在解決方案下創建Infrastructure文件夾。

在Infrastructure文件夾下創建一個上下文類,需要實現IdentityDbContext<>接口。

   public class AppIdentityDbContext : IdentityDbContext<AppUser>    {public AppIdentityDbContext()    : base("IdentityDb"){}static AppIdentityDbContext(){    //使用EF Code First第一次創建的時候調用    Database.SetInitializer<AppIdentityDbContext>(new IdentityDbInit());}public static AppIdentityDbContext Create(){    return new AppIdentityDbContext();}    }    //初始化    public class IdentityDbInit : DropCreateDatabaseIfModelChanges<AppIdentityDbContext>    {protected override void Seed(AppIdentityDbContext context){    PerformInitialSetup(context);    base.Seed(context);}//初始化工作public void PerformInitialSetup(AppIdentityDbContext context){ }    }

在Infrastructure文件夾下創建一個管理用戶的類,需要繼承UserManager<AppUser>類。

還記得,先前在appSettings節點中配置了一個如下方式:

<add key="owin:AppStartup" value="WebApplication4.IdentityConfig" />

OWIN需要一個全局啟動文件,默認會到項目的頂級命名空間下找IdentityConfig這個類。

那就在App_Start中創建IdentityConfig這個類,這個類在WebApplication4這個命名空間下。

namespace WebApplication4{    public class IdentityConfig    {public void Configuration(IAppBuilder app){    app.CreatePerOwinContext<AppIdentityDbContext>(AppIdentityDbContext.Create);    app.CreatePerOwinContext<AppUserManager>(AppUserManager.Create);    app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,LoginPath = new Microsoft.Owin.PathString("/Account/Login")    });}    }}

顯示用戶

創建AdminController,現在可以向視圖傳遞所有的用戶了,編寫如下:

    public class AdminController : Controller    {public ActionResult Index(){    return View(UserManager.Users);}private AppUserManager UserManager{    get    {return HttpContext.GetOwinContext().GetUserManager<AppUserManager>();    }}    }

再創建Admin/Index.cshtml類型為IEnumerable<AppUser>的強類型視圖。

@model IEnumerable<WebApplication4.Models.AppUser>@{    ViewBag.Title = "Index";    Layout = "~/Views/Shared/_Layout.cshtml";}<div>    <div>所有用戶賬戶    </div>    <table><tr><th>ID</th><th>Name</th><th>Email</th><th></th></tr>@if (Model.Count() == 0){    <tr><td colspan="4">還沒有創建用戶</td></tr>}else{    foreach (WebApplication4.Models.AppUser user in Model)    {<tr>    <td>@user.Id</td>    <td>@user.UserName</td>    <td>@user.Email</td>    <td>@using (Html.BeginForm("Delete", "Admin",    new { id = user.Id })){    @Html.ActionLink("編輯", "Edit", new { id = user.Id },    new { @class = "btn btn-primary btn-xs" })    <button    type="submit">刪除    </button>}    </td></tr>    }}    </table></div>@Html.ActionLink("創建用戶", "Create", null, new { @class = "btn btn-primary" })

創建用戶

在Models文件夾下創建一個視圖模型。

namespace WebApplication4.Models{    public class CreateModel    {public string Id { get; set; }[Required]public string Name { get; set; }[Required]public string Email { get; set; }[Required]public string Password { get; set; }    }}

在AdminController中添加創建用戶相關的方法。

   public class AdminController : Controller    {public ActionResult Index(){    return View(UserManager.Users);}//創建顯示public ActionResult Create(){    return View();}[HttpPost]public async Task<ActionResult> Create(CreateModel model){    if(ModelState.IsValid)    {var user = new AppUser{UserName = model.Name, Email = model.Email};IdentityResult result = await UserManager.CreateAsync(user, model.Password);if(result.Succeeded){    return RedirectToAction("Index");}else{    AddErrorsFromResult(result);}    }    return View(model);}//創建接收private void AddErrorsFromResult(IdentityResult result){    foreach(var error in result.Errors)    {ModelState.AddModelError("", error);    }}private AppUserManager UserManager{    get    {return HttpContext.GetOwinContext().GetUserManager<AppUserManager>();    }}    }

在Admin/Create.cshtml視圖頁中:

@model WebApplication4.Models.CreateModel@{    ViewBag.Title = "Create";    Layout = "~/Views/Shared/_Layout.cshtml";}<h2>Create</h2>@using (Html.BeginForm()) {    @Html.AntiForgeryToken()        <div><h4>創建用戶</h4><hr />@Html.ValidationSummary(true)<div>    @Html.LabelFor(model => model.Name, new { @class = "control-label col-md-2" })    <div>@Html.EditorFor(model => model.Name)@Html.ValidationMessageFor(model => model.Name)    </div></div><div>    @Html.LabelFor(model => model.Email, new { @class = "control-label col-md-2" })    <div>@Html.EditorFor(model => model.Email)@Html.ValidationMessageFor(model => model.Email)    </div></div><div>    @Html.LabelFor(model => model.Password, new { @class = "control-label col-md-2" })    <div>@Html.EditorFor(model => model.Password)@Html.ValidationMessageFor(model => model.Password)    </div></div><div>    <div><input type="submit" value="創建用戶" />    </div></div>    </div>}<div>    @Html.ActionLink("返回", "Index")</div>

點擊"創建"按鈕,創建成功返回顯示用戶頁面。

oh, my god,只是配置了一下就有數據了? 數據在哪呢?

點擊左上角的"服務器資源管理器",右鍵"IdentityDb",點擊"刷新"。

再打開AspNetUsers表,剛創建的用戶赫然在列。

好像還有點欠缺,用戶輸入密碼的時候,總應該有些限制吧。

能想到的,ASP.NET Identity都為我們準備好了。有一個PasswordValidator類就是干這個的。

在Infrastructure文件夾中創建一個PasswordValidator類的繼承子類。

namespace WebApplication4.Infrastructure{    public class CustomPasswordValidator : PasswordValidator    {public override async Task<IdentityResult> ValidateAsync(string pass){    IdentityResult result = await base.ValidateAsync(pass);    if (pass.Contains("12345"))    {var errors = result.Errors.ToList();errors.Add("密碼中包含太多連續數字");result = new IdentityResult(errors);    }    return result;}    }}

然后需要把這個規則告訴UserManager。

namespace WebApplication4.Infrastructure{    public class AppUserManager : UserManager<AppUser>    {public AppUserManager(IUserStore<AppUser> store) : base(store) { }public static AppUserManager Create(IdentityFactoryOptions<AppUserManager> options, IOwinContext context){    //identity ef上下文    AppIdentityDbContext db = context.Get<AppIdentityDbContext>();    //與identity ef相關的UserStore    IUserStore<AppUser> us = new UserStore<AppUser>(db);    AppUserManager manager = new AppUserManager(us);    //密碼相關    manager.PasswordValidator = new CustomPasswordValidator { RequiredLength = 6,RequireNonLetterOrDigit = false,RequireDigit = false,RequireLowercase = true,RequireUppercase = true    };    return manager;}    }}

再次運行程序,創建用戶頁面,嘗試輸入不通過的密碼。

不過,關于密碼的規則,似乎可以在View Model的驗證層面就可以解決掉。

編輯和刪除用戶

在AdminController中增加編輯和刪除的部分。

    public class AdminController : Controller    {public ActionResult Index(){    return View(UserManager.Users);}//創建顯示public ActionResult Create(){    return View();}//創建接收[HttpPost]public async Task<ActionResult> Create(CreateModel model){    if(ModelState.IsValid)    {var user = new AppUser{UserName = model.Name, Email = model.Email};IdentityResult result = await UserManager.CreateAsync(user, model.Password);if(result.Succeeded){    return RedirectToAction("Index");}else{    AddErrorsFromResult(result);}    }    return View(model);}//編輯顯示public async Task<ActionResult> Edit(string id){    AppUser user = await UserManager.FindByIdAsync(id);        if(User != null)    {CreateModel createModel = new CreateModel();createModel.Id = user.Id;createModel.Email = user.Email;createModel.Name = user.UserName;createModel.Password = user.PasswordHash;return View(createModel);    }    else    {return RedirectToAction("Index");    }}//接收編輯[HttpPost]public async Task<ActionResult> Edit(CreateModel createModel){        if(ModelState.IsValid)    {AppUser user = await UserManager.FindByIdAsync(createModel.Id);if (user != null){    //關于郵箱    user.Email = createModel.Email;    IdentityResult validEmail = await UserManager.UserValidator.ValidateAsync(user);    if (!validEmail.Succeeded)    {AddErrorsFromResult(validEmail);    }    user.UserName = createModel.Name;    //關于密碼    IdentityResult validPass = null;    if (createModel.Password != string.Empty)    {validPass = await UserManager.PasswordValidator.ValidateAsync(createModel.Password);if (validPass.Succeeded){    user.PasswordHash = UserManager.PasswordHasher.HashPassword(createModel.Password);}else{    AddErrorsFromResult(validPass);}    }    user.Email = createModel.Email;    //驗證結果    if ((validEmail.Succeeded && validPass == null) || (validEmail.Succeeded    && createModel.Password != string.Empty && validPass.Succeeded))    {IdentityResult result = await UserManager.UpdateAsync(user);if (result.Succeeded){    return RedirectToAction("Index");}else{    AddErrorsFromResult(result);}    }    else    {ModelState.AddModelError("", "無此用戶");    }}return View(createModel);    }    else    {return View(createModel);    }    }//刪除[HttpPost]public async Task<ActionResult> Delete(string id){    AppUser user = await UserManager.FindByIdAsync(id);    if(user != null)    {IdentityResult result = await UserManager.DeleteAsync(user);if(result.Succeeded){    return RedirectToAction("Index");}else{    return View("Error", result.Errors);}    }    else    {return View("Error", new string[] { "沒有此用戶" });    }}private void AddErrorsFromResult(IdentityResult result){    foreach(var error in result.Errors)    {ModelState.AddModelError("", error);    }}private AppUserManager UserManager{    get    {return HttpContext.GetOwinContext().GetUserManager<AppUserManager>();    }}    }

Admin/Edit.cshtml視圖。

@model WebApplication4.Models.CreateModel@{    ViewBag.Title = "Edit";    Layout = "~/Views/Shared/_Layout.cshtml";}<h2>Edit</h2>@using (Html.BeginForm()){    @Html.AntiForgeryToken()        <div><hr />@Html.ValidationSummary(true)@Html.HiddenFor(model => model.Id)<div>    @Html.LabelFor(model => model.Name, new { @class = "control-label col-md-2" })    <div>@Html.EditorFor(model => model.Name)@Html.ValidationMessageFor(model => model.Name)    </div></div><div>    @Html.LabelFor(model => model.Email, new { @class = "control-label col-md-2" })    <div>@Html.EditorFor(model => model.Email)@Html.ValidationMessageFor(model => model.Email)    </div></div><div>    @Html.LabelFor(model => model.Password, new { @class = "control-label col-md-2" })    <div>@Html.EditorFor(model => model.Password)@Html.ValidationMessageFor(model => model.Password)    </div></div><div>    <div><input type="submit" value="保存" />    </div></div>    </div>}<div>    @Html.ActionLink("返回", "Index")</div>

另外,如果刪除失敗,跳轉到Shared/Error.cshtml視圖頁。

@model IEnumerable<string>@{ ViewBag.Title = "Error";}<div>    @switch (Model.Count())    {case 0:    @: Something went wrong. Please try again    break;case 1:@Model.First();  break;default:@: 發現如下錯誤:<ul>    @foreach (string error in Model)    {<li>@error</li>    }</ul>    break;    }</div>@Html.ActionLink("確定", "Index", null, new { @class = "btn btn-default" })

至此,使用ASP.NET Identy實現對用戶的增刪改查完畢,ASP.NET Identity真的很好很強大!

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對的支持。如果你想了解更多相關內容請查看下面相關鏈接

標簽: ASP.NET
相關文章:
主站蜘蛛池模板: 久久人人爽人人爽人人片av不 | 无码人妻一区二区三区av | 日本aa大片在线播放免费看 | 狠狠精品久久久无码中文字幕 | 成人片免费视频 | 日韩一区二区视频在线 | 9久久9毛片又大又硬又粗 | 久久久精品免费看 | 成年无码av片完整版 | 国产露脸精品国产沙发 | 依依激情网 | 亚洲黄色网址大全 | 日产精品久久久一区二区 | hitomi一区二区在线播放 | 无码人妻丰满熟妇啪啪欧美 | 女体拷问一区二区三区 | 激情国产 | 国产精品日韩专区 | 日韩精品 中文字幕 视频在线 | 岛国片免费在线观看 | 亚洲精品乱码久久久久久按摩 | 懂色av一区二区三区蜜臀 | 欧美三级午夜理伦三级小说 | 少妇淫真视频一区二区 | 婷婷丁香九月 | 日本最大色倩网站www | 性欧美极品另类 | 日本黄色美女视频 | 中文字幕高清免费日韩视频在线 | 免费大片黄在线观看视频网站 | 一本久道久久 | 国产天堂亚洲 | 欧洲美一区二区三区亚洲 | 国产精品欧美一区二区三区不卡 | 99re视频精品 | 六月婷婷中文字幕 | 毛片基地黄久久久久久天堂 | www亚洲| 在线观看网站污 | 亚洲性猛交xxxx | 国产又色又爽又高潮免费 | 91久久精品一区 | 日本在线一级片 | 亚洲日韩乱码一区二区三区四区 | 五月丁香六月综合av | 日日噜噜夜夜狠狠视频免费 | 国产哺乳奶水91在线播放 | av超碰 | 亚洲va欧美va | 91嫩草私人成人亚洲影院 | 草色网| 狠狠色丁香婷婷综合 | 中文字幕第一页亚洲 | 麻豆视频在线观看免费软件 | 一本一本久久a久久精品综合小说 | 久久婷婷国产麻豆91 | 亚洲天堂美女视频 | 国产做a爰片久久毛片a片美国 | 男人午夜天堂 | 激情按摩系列片aaaa | 特级做a爰片毛片免费看 | 国产精品久久久久久久久久妞妞 | 裸身美女无遮挡永久免费视频 | 国产激情久久久久 | 免费人成视频在线播放 | 国产丝袜视频一区二区三区 | 99视频偷窥在线精品国自产拍 | 亚洲欧美综合精品久久成人 | 日本人xxxxxxxxx泡妞 | 2018国产精华国产精品 | 亚洲爆乳精品无码一区二区三区 | av毛片网| 成+人+黄+色有声+小说免费 | 亚洲逼院| 男女啪啪十八 | 九九精品在线观看 | 精精国产xxxx视频在线观看 | 免费在线看黄色片 | 久久久久久久久久久久久久免费看 | 91在线视频免费播放 | 这里只有精品999 | 精品www久久久久久奶水 | 中文在线中文资源不卡无 | 在线欧美a | 欧美成一区二区三区 | 午夜视频色| 欧美一区二区伦理片 | 日本不卡视频一区 | 精品国产乱码久久久久久浪潮 | 一本一本久久a久久精品综合妖精 | 亚洲香蕉精品 | 经典三级第一页 | 免费麻豆视频 | 九九九久久久久 | 北条麻妃一区二区三区av高清 | 懂色av一区 | 亚洲精品国偷自产在线99人热 | 国产成人一区二区三区在线 | 欧美精品久久久久久久久 | 日韩精品一区二区三区四区在线观看 | 亚洲第一视频在线播放 | av导航网站 | 失禁大喷潮在线播放 | 999zyz玖玖资源站在线观看 | 日韩午夜一区二区三区 | 国产第三区 | 男人天堂影院 | 国产偷久久一级精品av小说 | 日本www| 91在线网址| 亚洲欧美色图在线 | 午夜插插 | 在线亚洲综合 | 国产主播一区二区三区 | 成人必看www | 岳睡了我中文字幕日本 | 99久无码中文字幕一本久道 | 国产精品一级无遮挡毛片 | 欧美kkkk7777免费看 | 91精品久久天干天天天按摩 | 天天天欲色欲色www免费 | 少妇乳大丰满诱人2 | 成人黄色短片 | 囯产精品久久久久久久久久妞妞 | 欧美孕妇孕交黑巨大网站 | 91精品国产综合久久久久影院不卡 | 蜜桃狠狠色伊人亚洲综合网站 | 久久久久18| 日韩精品一区在线观看 | 久久在线视频免费观看 | 日韩av网站在线 | 久久理伦| 中文字幕av一区中文字幕天堂 | 天天操天天干天天操 | 有一婷婷色 | 国产三级在线观看视频 | 男人巨茎大战欧美白妇 | 日本55丰满熟妇厨房伦 | 国产蜜臀97一区二区三区 | 成人在线免费视频播放 | 色哟哟入口国产精品 | 亚洲4444| 欧美一区二区在线视频 | 国产高清不卡一区二区 | 337p亚洲精品色噜噜噜 | 久久无码中文字幕久久无码app | 爱情岛亚洲论坛入口 | 午夜在线视频观看日韩17c | 成人午夜免费在线观看 | 国产尤物网站 | 国产91精品高潮白浆喷水 | 午夜激情视频网 | 一区精品在线观看 | 国产好爽又高潮了毛片91 | 日本毛片网站 | 亚洲成人一 | 中文字幕制服丝袜 | 波多野结衣在线观看一区 | 亚洲一区在线观看视频 | 成人黄色毛片 | 人人草网站 | 国产精品成人无码久久久 | 日本熟妇成熟毛茸茸 | 欧美www| 鲁丝一区二区三区免费 | www.激情| 亚洲黄色一级 | 亚洲综合视频一区 | 韩国中文字幕在线观看 | 久久麻豆av | 精品无码一区二区三区 | 亚洲欧美小视频 | 久久99精品久久久久婷婷 | 亚洲国产欧美日韩精品一区二区三区 | av网站在线免费观看 | 国产传媒一区二区 | 又紧又大又爽精品一区二区 | 91高潮胡言乱语对白刺激国产 | av亚洲产国偷v产偷v自拍麻豆 | 久久久久久亚洲精品中文字幕 | 精品视频一区二区三区在线观看 | 制服丝袜一区二区三区 | 久久久久久久久国产 | 中文在线8资源库 | 清纯唯美一区二区三区 | 国产精品视频全国免费观看 | 精品无码国产污污污免费 | 成av人片一区二区三区久久 | 国产美女裸体无遮挡免费视频 | 国产精品成人一区二区不卡 | 国产又粗又硬又猛的免费视频 | 国产精品剧情对白无套在线观看 | 97无码免费人妻超级碰碰碰碰 | 一二三国产777avav | 亚洲黄色小视频在线观看 | 7777色鬼xxxⅹ欧美色妇 | 日日涩 | 一级肉体全黄裸片高潮不断 | 羞羞啪啪调教play男男黄 | 麻豆网站免费观看 | 亚洲精品久久久打桩机小说 | 精彩视频一区二区三区 | 国内视频精品 | 中出内射颜射骚妇 | 诱人的乳峰奶水hd | 亚洲国产成人欧美激情 | 最新中文字幕一区 | 国产精久久一区二区三区 | 嫩草影院wwwnyz五月天 | 成人动作片在线观看 | 好大好湿好硬顶到了好爽视频 | 欧美激情黑白配 | 日韩一区不卡 | 又粗又大又硬又长又爽 | www.天天操.com| 日韩精品在线免费看 | 亚洲国产成人精品综合av | 欧美a√| 婷婷夜夜躁天天躁人人躁 | 视频一区 视频二区 视频三区 视频四区 国产 | 成人午夜视频免费 | 伊人网综合视频 | 国产成人精品网 | 亚洲国产精品18久久久久久 | 欧美日韩免费在线视频 | 91宅男噜噜噜66在线观看 | 女十八毛片aaaaaaa片 | 国产一区二区三区久久久 | 不卡av片| 波多野结衣午夜 | 人妻少妇偷人精品视频 | 无码国产精品久久一区免费 | 欧美在线国产 | 亚洲一区二区观看播放 | 亚洲一区欧美二区 | 欧美牲交a欧牲交aⅴ久久 | 日本熟妇人妻中出 | 亚洲精品高潮呻吟久久av | 精品人妻av区波多野结衣 | 精品人妻系列无码专区 | 国产porn在线 | 久久国产欧美日韩精品 | 亚洲四区 | 欧美肥老妇视频九色 | 国产精品久久久久久久免费大片 | 国产素人在线 | 波多野吉衣一区二区三区 | 少妇做爰免费视看片 | 久久精品国产精品国产一区 | 秋霞影院一区二区 | 69久久精品 | 狠狠色狠狠色综合网 | 破处视频在线观看 | 美国女人毛片 | 国产成人美女视频 | asian性开放少妇pics | 一本色道久久综合亚洲精品按摩 | 欧美精品亚洲精品日韩专区 | 欧美视频亚洲图片 | 亚洲天堂av影院 | 成人综合激情网 | 6080yyy午夜理论片中无码 | 亚洲中文字幕无码天然素人在线 | 男女av在线 | 精品久久一| 日韩av第一页在线播放 | 狼人综合伊人 | wwwcom日本一级 | 欧美在线xxxx | 韩国三级做爰楼梯在线 | 精品国产依人香蕉在线精品 | 伊人国产在线 | 中文字幕一区二区三区乱码图片 | 爱插网 | 国产一级特黄毛片在线毛片 | 波多野结衣乱码中文字幕 | 九九热精品在线 | 亚洲第一视频网 | 就爱啪啪网 | 中国少妇无码专区 | 国产精品视频500部 国产精品视频99 | 肉丝袜脚交视频一区二区 | 亚洲精品一区二区三区四区乱码 | 又紧又大又爽精品一区二区 | 欧美牲交videossexeso欧美 | 少妇 酒店 露脸 3p | 就要日就要操 | 色偷偷av男人的天堂 | 国产又粗又硬又猛的毛片视频 | 久久久精品一区二区三区 | 国产99久久久久久免费看农村 | 亚洲日本香蕉视频 | 国产又黄又大又粗视频 | 欧美精品aaa | 国产精品久久久久久久久久久久人四虎 | 婷色| 奶大交一乱一乱一视一频 | 伊伊人成亚洲综合人网香 | 好爽…又高潮了免费毛片 | 欧美激情一区二区三区成人 | 少妇被粗大的猛烈进出视频 | av网站在线免费观看 | 中国一级片网站 | 精品国产一区二区三区性色av | 有码在线视频 | 国产巨乳在线观看 | 色五月丁香五月综合五月 | 男女啪啪做爰高潮免费网站 | 在线观看免费www | 色多多导航| 好吊色欧美一区二区三区视频 | 91大奶 | 国产精彩视频一区 | 国产精品爽 | 欧美精品日韩 | 人妻有码中文字幕在线 | 亚洲欧洲色| av在线资源观看 | 亚洲一区二区三区四区五区六区 | 91人人揉日日捏人人看 | 一区二区三区亚洲欧美 | 中文在线中文资源不卡无 | 色婷婷av一区二区三区之红樱桃 | 久久高清 | 日韩精品久久久久久久酒店 | 伊人热热| 成人激情视频 | 强迫凌虐淫辱の牝奴在线观看 | 日本 欧美 国产 | 在线色站| 欧美裸体xxxx极品少妇软件 | 91少妇精拍在线播放 | 女国产精品视频一区二区三区 | 一级做人爰全过程 | 日韩欧美亚洲综合久久 | 色老板精品凹凸在线视频观看 | 久久久久女教师免费一区 | 超碰av男人的天堂 | 涩涩鲁亚洲精品一区二区 | 91快色| 亚洲国产成人爱av在线播放 | 国产又爽又大又黄a片 | 色偷偷av亚洲男人的天堂 | 超级av在线天堂东京热 | 中国中文字幕伦av在线看片 | 99久久免费精品国产免费高清 | 69成人做爰免费视频 | 欧美午夜片欧美片在线观看 | 在线观看国产精品视频 | 国产另类xxxx | 爆操欧美 | 日本大尺度吃奶呻吟视频 | 国产视频资源在线观看 | 中文字幕日韩精品一区 | 久久久久亚洲精品男人的天堂 | 亚洲va中文字幕无码 | 国产成人精品网站 | 一本色道久久综合亚洲精品不 | 91成人看片免费版 | 综合激情亚洲 | 女兵的真人大毛片 | 黄色大全在线观看 | 国产麻花豆剧传媒精品mv在线 | 91久久精品日日躁夜夜欧美 | 日韩美女网站 | 精品国产乱码久久久久久婷婷 | 成人亚洲区 | a级片免费视频 | 深夜国产精品 | 少妇人妻偷人精品免费视频 | 青青草娱乐在线 | 国精产品一区一区三区有限公司杨 | 好吊妞视频788gao在线观看 | 最新中文字幕久久 | 男女羞羞视频软件 | 国产网红主播精品一区 | 日本高清视频wwww色 | 天海翼一区二区三区高清在线观看 | 国产一区在线观看视频 | 国产不卡毛片 | 日本丰满熟妇videossex | 99国产精品国产免费观看 | 国产大学生情侣呻吟视频 | 日韩干| 欧美性黑人极品hd | 精品久久久久久久久久久久久久 | 亚洲国产成人久久综合 | 无套内谢少妇毛片 | 国产少妇自拍 | 成年人小视频在线观看 | 亚洲熟妇无码八av在线播放 | 亚洲精品久久久久久婷婷 | 亚洲中文字幕无码久久精品1 | 免费三级网站 | 夜夜骑夜夜操 | 欧美日韩字幕 | 国产成人精品日本亚洲999 | 天天躁夜夜躁很很躁麻豆 | www.天天射 | 久久精品—区二区三区 | 亚洲国产成人综合精品 | 国产在线观看www | 91丝袜呻吟高潮美腿白嫩在线观看 | 亚洲精品午夜aaa久久久 | 国产福利姬喷水福利在线观看 | www.香蕉视频.com | 欧美国产综合欧美视频 | 97在线免费视频 | 欧美精品v国产精品v日韩精品 | 中国黄色一级毛片 | 免费高清av | 天天干天天色综合网 | 中文字幕+乱码+中文乱 | 国产成人免费 | 日本精品视频在线 | 国产字幕侵犯亲女 | 日本少妇做爰xxxⅹ漫 | 成熟丰满熟妇高潮xxxxx | 老司机午夜精品99久久免费 | 少妇高潮伦 | www欧美色图| 91精品国产色综合久久不8 | 一区二区三区入口 | 欧美理论视频 | 中国一级大黄大黄大色毛片 | 91久久极品少妇xxxxⅹ软件 | 久久全国免费视频 | 国产欧美精品国产国产专区 | 日本国产一区二区 | 欧美爱爱视频 | 亚洲欧美日韩网站 | 日韩第一区 | 日本aⅴ免费视频一区二区三区 | 欧美孕妇与黑人孕交 | 五月色丁香婷婷网蜜臀av | 97成人在线视频 | 岛国精品| а√天堂资源8在线官网 | 国产一区二区欧美 | 免费av网页 | 18禁高潮出水呻吟娇喘蜜芽 | 高清国产在线观看 | 99国产欧美另类久久久精品 | 天堂va蜜桃一区二区三区 | 成在线人av免费无码高潮喷水 | 小嫩草张开腿让我爽了一夜 | 亚洲影视中文字幕 | 衣服被扒开强摸双乳18禁网站 | 亚洲图片在线视频 | 免费啪视频 | 亚洲欧美v国产蜜芽tv | 免费看成人毛片 | 色五月丁香五月综合五月4438 | 成人做受黄大片 | 国产精品第六页 | 一道本视频在线 | 麻花豆传媒mv在线观看网站 | 欧美激情爱爱 | 国产aaaaav久久久一区二区 | mm视频在线观看 | 偷国产乱人伦偷精品视频 | 痴汉电车在线播放 | 精国产品一区二区三区a片 日韩av在线观看免费 | 人乳喂奶hd播放 | 黑人上司好猛我好爽中文字幕 | 欧美jizzhd精品欧美巨大免费 | 国产精品亚洲а∨无码播放麻豆 | 欧美成人看片一区二区三区尤物 | 国产乱子伦视频一区二区三区 | 男女性杂交内射女bbwxz | 亚洲a∨精品一区二区三区 gv天堂gv无码男同在线观看 | 国产日韩一区二区三区 | 日韩视频网站在线观看 | 用力来高潮了再用力91 | 狠狠色婷婷久久综合频道毛片 | 日韩精品高清在线 | 一本色道久久综合亚洲精品按摩 | 五月色婷婷亚洲精品制服丝袜1区 | 少妇愉情理伦片丰满丰满午夜 | 天天爱天天做天天大综合 | 精品久久久久久久免费看女人毛片 | 欧美成人性生活视频 | 久久久精品成人免费观看 | 美女视频黄是免费 | 久久久www免费人成精品 | 欧美日本国产欧美日本韩国99 | 激情小说av | 一本加勒比hezyo无码专区 | 欧美成人国产va精品日本一级 | 波多野结衣网址 | 色www永久免费视频 亚洲成av人在线观看天堂无码 | 日本视频高清一道一区 | 亚洲另类伦春色综合图片 | 欧美性色黄大片www喷水 | 中文字幕一区二区三区在线乱码 | 国内免费毛片 | 免费操片 | 偷拍女人私密按摩高潮视频 | av永久免费观看 | 免费黄色大片网站 | tushy欧美激情在线观看 | 亚洲一区小说 | 日韩视频在线一区二区 | 国产精品99久久久久久人红楼 | 日本免费毛片 | 美女又爽又黄又免费 | 日本国产在线视频 | 在线不卡日本 | 亚洲美女自拍视频 | 亚洲色图激情小说 | 男女日批在线观看 | 亚洲无吗视频 | 中国精品久久久 | 欧洲色网站| aaaa视频| 精国产品一区二区三区四季综 | 伊人情人色综合网站 | 女人真人毛片全免费看 | 淫片特黄特黄特黄 | 国产高清在线精品一区二区三区 | 精品小视频在线观看 | 性一交一伦一理一色一情 | 麻豆安全免费网址入口 | 99精品久久久 | 日本无码欧美一区精品久久 | 女人被狂躁c到高潮视频 | 一级a毛片 | 久久国精品 | 日韩三级毛片 | 欧美午夜精品久久久久久人妖 | 中文字幕精品一区二区三区精品 | 国产乱码日产乱码精品精 | 特级毛片在线 | 日本高清免费毛片大全awaaa | 主播av在线 | 57pao国产成永久免费视频 | 精品无码国产一区二区三区51安 | 国产欧美一区二区精品久导航 | 一级美女黄色片 | 精品久久久久久成人av | 亚洲精品一二三区 | 日本无遮羞教调屁股视频网站 | 国产视频黄色 | 韩国xxx hd videos| zzjizzji亚洲日本少妇 | 欧美黄大片 | 伊人久久成人网 | 少妇的呻吟k8 | 无码人妻精品一区二区三区下载 | 富婆xxxxx性猛交hd | 国产精品99久久99久久久动漫 | 偷窥四川少妇野外啪啪 | 欧美老熟妇xb水多毛多 | 欧美乱妇狂野欧美在线视频 | 简单av在线| 日韩欧美精品国产 | 91中出| a在线观看 | 成人av免费在线看 | 国产在线一二三区 | 四季av中文字幕一区 | 欧美一进一出抽搐大尺度视频 | 伊人久久精品无码麻豆一区 | 第九色激情 | 久久亚洲成人网 | 最近的中文字幕在线看视频 | 国产精华7777777 | 一个综合色| 婷婷丁香综合网 | 国产成人啪精品视频免费网 | 伊人久久大香线蕉av一区 | 超碰97观看 | 日韩欧美久久精品 | 国产女爽爽视频精品免费 | 免费一级淫片aaa片毛片a级 | 国产人妻一区二区三区四区五区六 | 山村淫强伦寡妇 | 亚洲精品午夜一区人人爽 | 日批视频免费播放 | 26uuu欧美日本 | 亚洲中文字幕无码专区 | 手机看黄色 | 免费看污黄网站在线观看 | 嫩草av在线 | 欧美日韩亚 | 精品亚洲一区二区三区在线播放 | 成人激情在线视频 | 亚洲精品乱码久久久久久蜜桃不爽 | 免费在线观看黄色片 | 国产日韩精品入口 | 午夜dj在线观看高清在线视频完整版 | 婷婷在线看 | 国产精品看片 | 少妇脚交调教玩男人的视频 | 中文字幕乱码在线播放 | 成人区人妻精品一区二区不卡网站 | 亚洲精品国品乱码久久久久 | 欧美午夜一区二区 | 国产香港明星裸体xxxx视频 | 亚洲国产成人久久精品大牛影视 | 欧美精品在线播放 | 日韩视频在线免费观看 | av av片在线看 | 伊人天堂在线 | 亚洲巨乳自拍 | 国产a∨精品一区二区三区不卡 | 欧洲av无码放荡人妇网站 | 国产肉体xxx裸体312大胆 | 婷婷激情小说网 | 影音先锋男人天堂 | 成人乱码一区二区三区av | 国产精品免费视频观看 | 在线观看一区二区视频 | 欧美三级毛片 | 黄色一级一级 |