成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > ASP.NET MVC5網(wǎng)站開發(fā)用戶注冊(四)

ASP.NET MVC5網(wǎng)站開發(fā)用戶注冊(四)

熱門標(biāo)簽:辦公用地圖標(biāo)注網(wǎng)點怎么操作 聊城智能電銷機器人電話 安陸市地圖標(biāo)注app 南昌自動外呼系統(tǒng)線路 寧德防封版電銷卡 云南外呼系統(tǒng)代理 上海市三維地圖標(biāo)注 西寧電銷外呼系統(tǒng)公司 海東防封電銷卡

一、默認Web項目的更改
用戶這部分還是自己做,所以刪除自動生成的用戶相關(guān)代碼。

二、添加Member區(qū)域
在web項目上點右鍵 添加 區(qū)域Member。

添加Home控制器,選擇MVC5控制器-空

我們給public ActionResult Index()添加一個視圖,代碼很簡單就是顯示下用戶名

@{
 ViewBag.Title = "會員中心";
}

h2>歡迎你!@User.Identity.Name 
 /h2>

我們先運行一下,出錯啦。

這是因為項目中有兩個名為Home的控制器,必須在路由中加上命名空間。先打開區(qū)域中的MemberAreaRegistration添加命名空間。

再打開項目中的RouteConfig,添加命名空間

再刷新瀏覽器,可以正常顯示。

再添加用戶控制器UserController。

三、模型類的更改
在這里先對Models項目User模型進行修改,原來考慮的是每個用戶只能屬于一個用戶組,后來仔細考慮了一下,還是不太合適,比如一個用戶兼任多個角色,所以還是把用戶和用戶組改成一對多的關(guān)系。

  • User模型。在模型中刪除GroupID,刪除外鍵Group。
  • Role模型。原來UserGroup(用戶組)改為角色,考慮到權(quán)限管理感覺叫角色比叫戶組更加合適,另外角色的含義更廣,可以是指用戶組,也可以指職位,還可以指部門……修改后代碼如下: 
using System.ComponentModel.DataAnnotations;

namespace Ninesky.Models
{
 /// summary>
 /// 角色
 /// remarks>
 /// 創(chuàng)建:2014.02.02
 /// 修改:2014.02.16
 /// /remarks>
 /// /summary>
 public class Role
 {
 [Key]
 public int RoleID { get; set; }

 /// summary>
 /// 名稱
 /// /summary>
 [Required(ErrorMessage="必填")]
 [StringLength(20, MinimumLength = 2, ErrorMessage = "{1}到{0}個字")]
 [Display(Name="名稱")]
 public string Name { get; set; }

 /// summary>
 /// 角色類型br />
 /// 0普通(普通注冊用戶),1特權(quán)(像VIP之類的類型),3管理(管理權(quán)限的類型)
 /// /summary>
 [Required(ErrorMessage = "必填")]
 [Display(Name = "用戶組類型")]
 public int Type { get; set; }

 /// summary>
 /// 說明
 /// /summary>
 [Required(ErrorMessage = "必填")]
 [StringLength(50, ErrorMessage = "少于{0}個字")]
 [Display(Name = "說明")]
 public string Description { get; set; }

 /// summary>
 /// 獲取角色類型名稱
 /// /summary>
 /// returns>/returns>
 public string TypeToString()
 {
 switch (Type)
 {
 case 0:
  return "普通";
 case 1:
  return "特權(quán)";
 case 2:
  return "管理";
 default:
  return "未知";
 }
 }
 }
}

UserRoleRelation類。在Models項目添加角色關(guān)系類UserRoleRelation類,代碼:

using System.ComponentModel.DataAnnotations;

namespace Ninesky.Models
{
 /// summary>
 /// 用戶角色關(guān)系
 /// remarks>
 /// 創(chuàng)建:2014.02.16
 /// /remarks>
 /// /summary>
 public class UserRoleRelation
 {
 [Key]
 public int RelationID { get; set; }

 /// summary>
 /// 用戶ID
 /// /summary>
 [Required()]
 public int UserID { get; set; }
 
 /// summary>
 /// 角色ID
 /// /summary>
 [Required()]
 public int RoelID { get; set; }
 }
}

NineskyDbContext類。 如下圖藍色框為修改部分,紅框為新增加

三、驗證碼及Sha256加密
1、驗證碼
現(xiàn)在驗證碼是網(wǎng)站的必須功能,我把驗證碼功能分成三塊:創(chuàng)建驗證碼字符、根據(jù)驗證碼生成圖片、User控制器action中保存驗證碼并返回圖片。

創(chuàng)建驗證碼字符 CreateVerificationText()

在Common中添加Security類,在類中利用偽隨機數(shù)生成器生成驗證碼字符串。

/// summary>
 /// 創(chuàng)建驗證碼字符
 /// /summary>
 /// param name="length">字符長度/param>
 /// returns>驗證碼字符/returns>
 public static string CreateVerificationText(int length)
 {
 char[] _verification = new char[length];
 char[] _dictionary = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
 Random _random = new Random();
 for (int i = 0; i  length; i++) { _verification[i] = _dictionary[_random.Next(_dictionary.Length - 1)]; }
 return new string(_verification);
 }

根據(jù)驗證碼生成圖片CreateVerificationImage()
思路是使用GDI+創(chuàng)建畫布,使用偽隨機數(shù)生成器生成漸變畫刷,然后創(chuàng)建漸變文字。

/// summary>
 /// 創(chuàng)建驗證碼圖片
 /// /summary>
 /// param name="verificationText">驗證碼字符串/param>
 /// param name="width">圖片寬度/param>
 /// param name="height">圖片長度/param>
 /// returns>圖片/returns>
 public static Bitmap CreateVerificationImage(string verificationText, int width, int height)
 {
 Pen _pen= new Pen(Color.Black);
 Font _font = new Font("Arial", 14, FontStyle.Bold);
 Brush _brush = null;
 Bitmap _bitmap = new Bitmap(width,height);
 Graphics _g = Graphics.FromImage(_bitmap);
 SizeF _totalSizeF = _g.MeasureString(verificationText,_font);
 SizeF _curCharSizeF;
 PointF _startPointF = new PointF((width-_totalSizeF.Width)/2,(height-_totalSizeF.Height)/2);
 //隨機數(shù)產(chǎn)生器
 Random _random =new Random();
 _g.Clear(Color.White);
 for(int i=0;iverificationText.Length;i++)
 {
 _brush = new LinearGradientBrush(new Point(0,0),new Point(1,1),Color.FromArgb(_random.Next(255),_random.Next(255),_random.Next(255)),Color.FromArgb(_random.Next(255),_random.Next(255),_random.Next(255)));
 _g.DrawString(verificationText[i].ToString(),_font,_brush,_startPointF);
 _curCharSizeF = _g.MeasureString(verificationText[i].ToString(),_font);
 _startPointF.X+= _curCharSizeF.Width;
 }
 _g.Dispose();
 return _bitmap;
 }

User控制器action中保存驗證碼并返回圖片
首先添加User控制器,在Member區(qū)域中添加控制器UserController。在控制器中寫一個VerificationCode方法。過程是:在方法中我們先創(chuàng)建6位驗證碼字符串->使用CreateVerificationImage創(chuàng)建驗證碼圖片->把圖片寫入OutputStream中->把驗證碼字符串寫入TempData中。

保存在TempData中和Session中的區(qū)別:TempData只傳遞一次,也就是傳遞到下一個action后,action代碼執(zhí)行完畢就會銷毀,Session會持續(xù)保存,所以驗證碼用TempData比較合適。

/// summary>
 /// 驗證碼
 /// /summary>
 /// returns>/returns>
 public ActionResult VerificationCode()
 {
 string verificationCode = Security.CreateVerificationText(6);
 Bitmap _img = Security.CreateVerificationImage(verificationCode, 160, 30);
 _img.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
 TempData["VerificationCode"] = verificationCode.ToUpper();
 return null;
 }

我們看看生成圖驗證碼效果:

2、Sha256加密
在COmmon項目的Security類中添加靜態(tài)方法Sha256(string plainText)

/// summary>
 /// 256位散列加密
 /// /summary>
 /// param name="plainText">明文/param>
 /// returns>密文/returns>
 public static string Sha256(string plainText)
 {
 SHA256Managed _sha256 = new SHA256Managed();
 byte[] _cipherText = _sha256.ComputeHash(Encoding.Default.GetBytes(plainText));
 return Convert.ToBase64String(_cipherText);
 }

四、注冊
在Ninesky.Web.Areas.Member.Models中添加注冊視圖模型

using System.ComponentModel.DataAnnotations;

namespace Ninesky.Web.Areas.Member.Models
{
 public class RegisterViewModel
 {
 /// summary>
 /// 用戶名
 /// /summary>
 [Required(ErrorMessage = "必填")]
 [StringLength(20, MinimumLength = 4, ErrorMessage = "{2}到{1}個字符")]
 [Display(Name = "用戶名")]
 public string UserName { get; set; }

 /// summary>
 /// 顯示名
 /// /summary>
 [Required(ErrorMessage = "必填")]
 [StringLength(20, MinimumLength = 2, ErrorMessage = "{2}到{1}個字符")]
 [Display(Name = "顯示名")]
 public string DisplayName { get; set; }

 /// summary>
 /// 密碼
 /// /summary>
 [Required(ErrorMessage = "必填")]
 [Display(Name = "密碼")]
 [StringLength(20,MinimumLength=6,ErrorMessage="{2}到{1}個字符")]
 [DataType(DataType.Password)]
 public string Password { get; set; }

 /// summary>
 /// 確認密碼
 /// /summary>
 [Required(ErrorMessage = "必填")]
 [Compare("Password", ErrorMessage = "兩次輸入的密碼不一致")]
 [Display(Name = "確認密碼")]
 [DataType(DataType.Password)]
 public string ConfirmPassword { get; set; }

 /// summary>
 /// 郵箱
 /// /summary>
 [Required(ErrorMessage = "必填")]
 [Display(Name = "郵箱")]
 [DataType(DataType.EmailAddress,ErrorMessage="Email格式不正確")]
 public string Email { get; set; }

 /// summary>
 /// 驗證碼
 /// /summary>
 [Required(ErrorMessage = "必填")]
 [StringLength(6, MinimumLength = 6, ErrorMessage = "驗證碼不正確")]
 [Display(Name = "驗證碼")]
 public string VerificationCode { get; set; }
 }
}

在UserController中添加Register() action ,并返回直接返回強類型(RegisterViewModel)視圖

/// summary>
 /// 注冊
 /// /summary>
 /// returns>/returns>
 public ActionResult Register()
 {
 return View();
 }

視圖

@model Ninesky.Web.Areas.Member.Models.RegisterViewModel

@{
 ViewBag.Title = "注冊";
 Layout = "~/Views/Shared/_Layout.cshtml";
}


@using (Html.BeginForm()) 
{
 @Html.AntiForgeryToken()
 
 div class="form-horizontal">
 h4>用戶注冊/h4>
 hr />
 @Html.ValidationSummary(true)

 div class="form-group">
 @Html.LabelFor(model => model.UserName, new { @class = "control-label col-md-2" })
 div class="col-md-10">
 @Html.EditorFor(model => model.UserName)
 @Html.ValidationMessageFor(model => model.UserName)
 /div>
 /div>

 div class="form-group">
 @Html.LabelFor(model => model.DisplayName, new { @class = "control-label col-md-2" })
 div class="col-md-10">
 @Html.EditorFor(model => model.DisplayName)
 @Html.ValidationMessageFor(model => model.DisplayName)
 /div>
 /div>

 div class="form-group">
 @Html.LabelFor(model => model.Password, new { @class = "control-label col-md-2" })
 div class="col-md-10">
 @Html.EditorFor(model => model.Password)
 @Html.ValidationMessageFor(model => model.Password)
 /div>
 /div>

 div class="form-group">
 @Html.LabelFor(model => model.ConfirmPassword, new { @class = "control-label col-md-2" })
 div class="col-md-10">
 @Html.EditorFor(model => model.ConfirmPassword)
 @Html.ValidationMessageFor(model => model.ConfirmPassword)
 /div>
 /div>

 div class="form-group">
 @Html.LabelFor(model => model.Email, new { @class = "control-label col-md-2" })
 div class="col-md-10">
 @Html.EditorFor(model => model.Email)
 @Html.ValidationMessageFor(model => model.Email)
 /div>
 /div>

 div class="form-group">
 @Html.LabelFor(model => model.VerificationCode, new { @class = "control-label col-md-2" })
 div class="col-md-10">
 @Html.EditorFor(model => model.VerificationCode)
 img id="verificationcode" title="點擊刷新" src="@Url.Action("VerificationCode")" style="cursor:pointer" />
 @Html.ValidationMessageFor(model => model.VerificationCode)
 /div>
 /div>
 div class="checkbox">
 input type="checkbox" checked="checked" required />我同意 a href="#">《用戶注冊協(xié)議》/a> 
 /div>
 div class="form-group">
 div class="col-md-offset-2 col-md-10">
 input type="submit" value="注冊" class="btn btn-default" />
 /div>
 /div>
 /div>
}
script type="text/javascript">
 $("#verificationcode").click(function () {
 $("#verificationcode").attr("src", "@Url.Action("VerificationCode")?" + new Date());
 })
/script>

@section Scripts {
 @Scripts.Render("~/bundles/jqueryval")
}

再在用戶控制器中添加public ActionResult Register(RegisterViewModel register)用來處理用戶提交的注冊數(shù)據(jù)

[HttpPost]
 [ValidateAntiForgeryToken]
 public ActionResult Register(RegisterViewModel register)
 {
 if (TempData["VerificationCode"] == null || TempData["VerificationCode"].ToString() != register.VerificationCode.ToUpper())
 {
 ModelState.AddModelError("VerificationCode", "驗證碼不正確");
 return View(register);
 }
 if(ModelState.IsValid)
 {

 if (userService.Exist(register.UserName)) ModelState.AddModelError("UserName", "用戶名已存在");
 else
 {
  User _user = new User()
  {
  UserName = register.UserName,
  //默認用戶組代碼寫這里
  DisplayName = register.DisplayName,
  Password = Security.Sha256(register.Password),
  //郵箱驗證與郵箱唯一性問題
  Email = register.Email,
  //用戶狀態(tài)問題
  Status = 0,
  RegistrationTime = System.DateTime.Now
  };
  _user = userService.Add(_user);
  if (_user.UserID > 0)
  {
  return Content("注冊成功!");
  //AuthenticationManager.SignIn();
  }
  else { ModelState.AddModelError("", "注冊失敗!"); }
 }
 }
 return View(register);
 }

代碼中很多根用戶設(shè)置相關(guān)的內(nèi)容先不考慮,等做到用戶設(shè)置時在會后來修改。注冊失敗時返回視圖并顯示錯誤;成功時返回視圖注冊成功,等下次做用戶登錄時可以讓用戶注冊完畢直接進行登錄。看看效果。

點擊注冊,注冊成功。

一個簡單的用戶注冊完成了,主要有驗證碼、sha256加密、注冊視圖模型、驗證用戶提交數(shù)據(jù)并保存等步驟。后面就是用戶注冊,注冊會用到ClaimsIdentity和HttpContext.GetOwinContext().Authentication.SignIn();

本文已被整理到了《ASP.NET MVC網(wǎng)站開發(fā)教程》,歡迎大家學(xué)習(xí)閱讀,更多內(nèi)容還可以參考ASP.NET MVC5網(wǎng)站開發(fā)專題學(xué)習(xí)。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • ASP.NET MVC5網(wǎng)站開發(fā)用戶登錄、注銷(五)
  • PHP MVC模式在網(wǎng)站架構(gòu)中的實現(xiàn)分析
  • ASP.NET MVC5 網(wǎng)站開發(fā)框架模型、數(shù)據(jù)存儲、業(yè)務(wù)邏輯(三)
  • MVC4 網(wǎng)站發(fā)布(整理+部分問題收集和解決方案)
  • CodeIgniter php mvc框架 中國網(wǎng)站
  • PHP發(fā)明人談MVC和網(wǎng)站設(shè)計架構(gòu) 貌似他不支持php用mvc
  • ASP.NET MVC5網(wǎng)站開發(fā)項目框架(二)
  • ASP.NET MVC5網(wǎng)站開發(fā)顯示文章列表(九)
  • ASP.NET MVC5網(wǎng)站開發(fā)添加文章(八)
  • 一步步打造簡單的MVC電商網(wǎng)站BooksStore(1)

標(biāo)簽:南寧 汕尾 青海 衢州 崇左 贛州 洛陽 巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《ASP.NET MVC5網(wǎng)站開發(fā)用戶注冊(四)》,本文關(guān)鍵詞  ASP.NET,MVC5,網(wǎng)站開發(fā),用戶注冊,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。

  • 相關(guān)文章
  • 下面列出與本文章《ASP.NET MVC5網(wǎng)站開發(fā)用戶注冊(四)》相關(guān)的同類信息!
  • 本頁收集關(guān)于ASP.NET MVC5網(wǎng)站開發(fā)用戶注冊(四)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    思思99精品视频在线观看| 日韩高清中文字幕一区| 美女被c出白浆| a在线欧美一区| 无码人妻丰满熟妇区毛片18| 国产乱码精品一区二三区蜜臂| 欧美精品日韩三级| 国产v亚洲v天堂无码| 国产精品免费免费| 青青草精品视频| 成人精品视频一区二区三区尤物| 免费h网站在线观看| 午夜一区二区三区不卡视频| 伊人色综合久久久| 高清视频一区二区三区四区| 亚洲婷婷综合久久一本伊一区| 亚洲精品久久久久久久久久久久久久| 亚洲xxxx18| 国产99久久久精品| 可以直接看的av网址站| 欧美国产免费| 日韩女优电影在线观看| 久久精品国产亚洲AV无码麻豆| 黄色一区二区在线观看| 国产xxxx视频| 午夜精品福利在线| 日本美女高潮视频| 开心婷婷激情| 午夜亚洲视频| 欧美熟妇另类久久久久久多毛| 日韩伦理片在线观看| 国产脚交av在线一区二区| 国产成人在线视频播放| av一本久道久久综合久久鬼色| 波多野结衣电车痴汉| 草草影院第一页| 99在线看视频| 91aaa在线观看| 日韩精品视频在线观看免费| 国内精品自线一区二区三区视频| 亚洲国产精品一区二区久久| 老司机亚洲精品一区二区| 亚洲自拍中文字幕| 久久精品亚洲国产奇米99| 国产日本亚洲| 99re6热在线精品视频播放速度| 女女百合国产免费网站| 欧美日韩美女一区二区| 天天av综合网| 九九精品视频在线观看| 天堂视频中文在线| 日本高清不卡中文字幕| 在线播放高清视频www| 免费观看视频www| 欧美在线激情网| 久久综合色鬼综合色| 日韩欧美国产电影| 亚洲精品在线视频免费| 夜色资源网av在先锋网站观看| 国产日韩综合一区二区性色av| 国产精品久久久| 超碰成人av| 美女三级99| 男人的天堂99| 伊人资源视频在线| av在线麻豆| 国产精品国产av| 日韩精品久久一区二区| ●精品国产综合乱码久久久久| jizz中国女人| 色婷婷综合视频在线观看| 91肉色超薄丝袜脚交一区二区| 亚欧视频在线观看| 日韩在线观看电影完整版高清免费| 在线播放免费视频| 成人精品水蜜桃| 性欧美精品中出| 成人欧美精品久久久久影院| 日韩人体视频一二区| 精品美女www爽爽爽视频| 在线成人激情| 成人免费观看男女羞羞视频| 98色花堂精品视频在线观看| 国产精品久久久久蜜臀| 免费成人av网站| 国产黄a三级三级三级av在线看| 日本亚州欧洲精品不卡| 黄色大片在线免费看| 亚欧洲精品在线视频| 日韩精品第一区| 国产九区一区在线| 777久久久精品一区二区三区| 国产婷婷一区二区三区久久| 免费网站在线高清观看| 亚洲成在线观看| 国产无遮挡猛进猛出免费软件| 2一3sex性hd| 欧美日韩亚洲一区二区三区| 成人精品在线观看视频| 九色91蝌蚪在线| 中文字幕久久久久| 日韩av午夜| 91精品一区二区三区久久久久久| 欧美亚洲国产一区二区三区| 无码人妻aⅴ一区二区三区69岛| 国产精品久久久久久av| 国产一级片免费| 国产精品久久久久久久久久直播| 激情欧美一区二区三区| 久久先锋影音av鲁色资源| 好吊色在线观看| 国产精品久久久久影视| 欧美黑人巨大| 国产成人在线观看免费网站| 国产成人久久久| 亚洲mv大片欧洲mv大片| aaa国产精品视频| 日日骚av一区二区| 欧美一级一级性生活免费录像| 在线免费观看日本欧美| 二区视频在线观看| 免费av成人在线| 最近2018年手机中文在线| 亚洲另类在线制服丝袜| 日本韩国欧美在线| h在线视频免费观看完整版| 秘密影院久久综合亚洲综合| 水蜜桃av无码| 久久久777| 欧美影片第一页| 亚洲free性xxxx护士hd| 顶级网黄在线播放| 国产第一页精品| av手机免费看| 91精品视频在线看| 激情偷乱视频一区二区三区| 欧美xxxx18性欧美| 国产精品自拍视频在线| 亚洲国产精品18久久久久久| 精品在线播放免费| 三级在线看中文字幕完整版| 欧美日韩在线综合| 国产又黄又大又爽| 99久久久国产精品免费调教网站| 人妻激情偷乱频一区二区三区| 人人妻人人澡人人爽精品欧美一区| 欧美经典影片视频网站| 亚洲mv在线观看| 麻豆电影在线观看| 97精品国产露脸对白| 国产精品青草综合久久久久99| 日韩vs国产vs欧美| 捆绑调教美女网站视频一区| 高清在线观看免费| 亚洲欧美国产精品桃花| 国产三区二区一区久久| 精品国产丝袜高跟鞋| 欧美国产激情一区二区三区蜜月| 国产美女一区二区三区| 国产夫妻性生活视频| 亚洲国产精品区| 成人免费观看网站| 欧美一区二区三区| 国产中文字幕在线免费观看| 色狠狠色狠狠综合| 亚洲国产精品无码av| freehdxxxx| 在线免费观看成年人视频| 成人在线免费观看一区| 欧美激情一区二区三区不卡| 成人亚洲一区二区三区| 国产91精品捆绑调教| 免费观看一二区视频网站| 亚洲国产美女精品久久久久∴| 日本午夜精品一区二区| 亚洲国产成人精品久久久国产成人一区| 国产日产精品一区二区三区四区的观看方式| 免费黄色激情视频| 欧美男同视频网| 三上悠亚av一区二区三区| 亚洲高清免费观看高清完整版| 毛片网站网址| 360天大佬第二季在线观看| 最新中文字幕一区二区三区| 91社区在线高清| 精品久久久久久久久中文字幕| 波多野结衣综合网| 成人观看高清在线观看免费| 九色porny自拍视频在线播放| av网站无病毒在线| 91社影院在线观看| 欧美巨大另类极品videosbest| 亚洲视频在线免费| 欧美专区日韩| 亚洲成人免费视| 国产污视频在线看| 国产精品视频二| 国产又粗又猛又黄| 成人午夜激情片| 625成人欧美午夜电影| 日韩综合精品| 欧美色图免费看| 狠狠爱成人网| 亚洲欧美综合乱码精品成人网| 青青草国产精品一区二区| 欧美日韩爆操| 日本一区二区成人| 亚洲中文字幕无码专区| 国产99久久久| 在线观看国产精品入口| 外卖gayxxxxgay1| 精品久久九九| 夜夜嗨av色综合久久久综合网| 一级毛片在线看| 欧美日韩国产丝袜美女| 欧美另类videos死尸| 精品无人区一区二区三区竹菊| 亚洲精品电影网在线观看| 国产精品白浆视频免费观看| 男同互操gay射视频在线看| 2021国产精品视频| 少妇久久久久久久| 草草视频在线播放| 一本久久a久久精品vr综合| 丁香婷婷自拍| 欧美激情一级二级| 国内外成人免费激情视频| 亚洲一区免费视频| 国产一区二区三区精彩视频| 精品一区日韩成人| 日韩中文视频免费在线观看| 极品美女一区二区三区| 精品五月天久久| 欧美一区激情视频在线观看| 久久久久亚洲精品中文字幕| 久久精品影视大全| 男人搞女人网站| 久久综合久久鬼色中文字| av 日韩 人妻 黑人 综合 无码| 草草久视频在线观看电影资源| 成人免费视频| 亚洲最大的免费| 中日韩在线观看视频| 日韩精品高清不卡| 99久久er| 欧美日韩第一区日日骚| 四虎影视4hu4虎成人| 免费视频一区二区| 欧美视频第一页| 成人三级视频| 亚洲精品国产一区二区| 国产黄网站在线观看| 久久久成人网| 黄色国产在线| 国产真乱mangent| 亚洲欧洲黄色网| 午夜精品一区二区三区三上悠亚| 欧美一区二区三区综合| 日本韩国欧美在线| 日韩性小视频| 日韩1区2区日韩1区2区| 成人激情电影一区二区| 91深夜福利| 香蕉视频在线观看免费| 亚洲h在线观看| 中文字幕在线免费| 麻豆入口视频在线观看| 免费av高清| 亚洲欧美日韩国产yyy| 久久久亚洲国产天美传媒修理工| 欧美成人69av| 丝袜亚洲另类丝袜在线| 日韩高清不卡一区二区| 不卡在线一区二区| xfplay资源站色先锋在线观看| 青青草原在线免费观看| 99蜜月精品久久91| xx00欧美| 日韩亚洲欧美中文三级| 欧洲grand老妇人| 国产亚洲一区字幕| 欧美日韩精品二区第二页| 91精品在线看| 51精品国自产在线| 中文在线视频观看| 国产三级三级看三级| 国产成人精品av久久| 亚洲综合成人婷婷小说| 欧美日韩高清不卡| 欧美激情18p| 中文av字幕一区| 中文字幕丰满乱子伦无码专区| 青青一区二区| 欧美日韩国产在线看| jizzjizz视频| 人人干人人干| 欧美激情手机在线视频| 韩国成人福利片在线播放| 久久久999国产| 不卡视频一区二区三区| 欧美体内she精高潮| 亚洲另类图片另类电影| 久久久久久久久久久影视| 久久综合88中文色鬼| 久久久久久久久久一级| 一区二区三区四区高清精品免费观看| 欧美精品国产精品| 男人天堂亚洲天堂| 亚洲婷婷在线视频| 卡一卡二国产精品| 欧美日韩爆操| 亚洲波多野结衣| 99精产国品一二三产品香蕉| 性欧美最新另类| 波多野结衣a v在线| 日韩经典一区二区| 成人污网站在线观看| 免费国产羞羞网站美图| 亚洲三级在线| 国产韩日影视精品| 三区四区电影在线观看| 黄色成人91| 双性尿奴穿贞c带憋尿| 欧美一区二视频| 亚洲视频重口味| 欧美日韩成人在线| 免费一区二区三区视频导航| 国产美女在线看|