最新要闻
- 世界今热点:对建造清代故宫影响最大的工匠,原来是这一家人!
- 合资品牌的无奈!奥迪之后丰田挂牌:我们也有纯电动请往里进
- 苹果Mac OS被指碰瓷WinXP经典壁纸:还真不是玩笑
- 世界快资讯:年轻人压力较大 乘联会崔东树:中国车市还得指望中老年人
- 又一新能源车企被申请破产!曾被称为“四小龙”之一
- 珠碱商品报价动态(2023-06-17)
- 看点:只需4年 PCIe 7.0硬盘有望追上DDR5内存:性能狂飙
- 人不在学校却被抬到校长面前拨穗 全场欢呼鼓掌:不想让舍友留下遗憾
- 嫌榴莲太臭?可它这3个好处“香”到不行!
- 《闪电侠》豆瓣8分:超七成观众给出4星以上好评
- 生来上等命,前有贵人,后有靠山,注定好运不断的星座,日后必成大器
- 3999元起 蔚来天穹车尾帐发布:10分钟快速搭建“一室一厅”
- 腾讯、网易游戏公布端午未成年人限玩时间:高考后准大学生仍被限
- 天天快看:中国车第一次!领克03高性能特别版首发:原厂防滚架可上路
- 酷睿i9-13700H VS.锐龙9 7940H全面对比:AMD仍有很长的路要走
- 天天热推荐:布林肯冀访华改善中美沟通避免引发冲突 中方促美尊重核心关切
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
天天热点评!ASP.NET Core MVC 从入门到精通之Identity入门
随着技术的发展,ASP.NET Core MVC也推出了好长时间,经过不断的版本更新迭代,已经越来越完善,本系列文章主要讲解ASP.NET Core MVC开发B/S系统过程中所涉及到的相关内容,适用于初学者,在校毕业生,或其他想从事ASP.NET Core MVC 系统开发的人员。
【资料图】
经过前几篇文章的讲解,初步了解ASP.NET Core MVC项目创建,启动运行,以及命名约定,创建控制器,视图,模型,接收参数,传递数据ViewData,ViewBag,路由,页面布局,wwwroot和客户端库,Razor语法,EnityFrameworkCore与数据库,HttpContext,Request,Response,Session,序列化,文件上传,自动映射,Html辅助标签,模型校验,鉴权、授权基础等内容,今天继续讲解ASP.NET Core MVC 中等Identity入门相关内容,仅供学习分享使用。
什么是Identity?
ASP.NET Core Identity是用于构建ASP.NET Core Web应用程序的身份认证系统,包括用户数据,用户身份以及注册登录信息数据存储,可以让您的应用拥有登录功能以及持续化存储登录用户相关数据。
ASP.NET Core Identity:
一个 API,它支持用户界面 (UI) 登录功能。
管理用户、密码、配置文件数据、角色、声明、令牌、电子邮件确认等等。
用户可使用存储在 Identity 中的登录信息创建帐户,或者可使用外部登录提供程序。支持的外部登录提供程序包括 Facebook、Google、Microsoft 帐户和 Twitter。
Identity 通常使用 SQL Server 数据库进行配置,以存储用户名、密码和配置文件数据。或者,可使用其他持久性存储,例如 Azure 表存储。
在本主题中,你将学习Identity的注册,登录,登出等相关应用。
Identity应用步骤
1. 通过模板创建项目
选择模板【ASP.NET Core Web应用(模型-视图-控制器)】,然后点击下一步
打开配置新项目页面,输入【项目名称】,然后点击下一步
在其他信息页面,选择框架【.NET 6.0(长期支持)】,身份验证类型,选择【个人账户】,然后点击【创建】,如下所示:
生成的项目将ASP.NET Core Identity作为Razor类库提供。 IdentityRazor 类库公开具有Identity
区域的终结点。
2. 创建数据库
在数据库管理器中,创建空数据库,如下所示:
3. 修改数据库连接字符串
在创建好后的项目中,打开项目配置文件【appsettings.json】,修改默认数据库连字符串,如下所示:
4. 数据库更新迁移
通过VisualStudio打开程序包管理器控制台
,输入以下命令【Update-Database】,进行数据库迁移,如下所示:
待执行数据迁移成功后,打开刚刚创建的数据库,发现多出了几个表,如下所示:
如此,则表示迁移成功。
之所以能够迁移成功,是因为模板在创建项目时,已经为我们创建了初始化脚本,如下所示:
5. 配置Identity服务
根据官方文档,注入Identity相关服务,如下所示:
1 using DemoCoreIdentity.Data; 2 using Microsoft.AspNetCore.Identity; 3 using Microsoft.EntityFrameworkCore; 4 5 var builder = WebApplication.CreateBuilder(args); 6 7 // Add services to the container. 8 var connectionString = builder.Configuration.GetConnectionString("DefaultConnection"); 9 builder.Services.AddDbContext(options =>10 options.UseSqlServer(connectionString));11 builder.Services.AddDatabaseDeveloperPageExceptionFilter();12 13 #region Identity14 15 builder.Services.AddDefaultIdentity (options => options.SignIn.RequireConfirmedAccount = true)16 .AddEntityFrameworkStores ();17 builder.Services.AddControllersWithViews();18 19 builder.Services.Configure (options =>20 {21 // Password settings.22 options.Password.RequireDigit = true;23 options.Password.RequireLowercase = true;24 options.Password.RequireNonAlphanumeric = true;25 options.Password.RequireUppercase = true;26 options.Password.RequiredLength = 6;27 options.Password.RequiredUniqueChars = 1;28 29 // Lockout settings.30 options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(5);31 options.Lockout.MaxFailedAccessAttempts = 5;32 options.Lockout.AllowedForNewUsers = true;33 34 // User settings.35 options.User.AllowedUserNameCharacters =36 "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+";37 options.User.RequireUniqueEmail = false;38 });39 40 builder.Services.ConfigureApplicationCookie(options =>41 {42 // Cookie settings43 options.Cookie.HttpOnly = true;44 options.ExpireTimeSpan = TimeSpan.FromMinutes(5);45 46 options.LoginPath = "/Identity/Account/Login";47 options.AccessDeniedPath = "/Identity/Account/AccessDenied";48 options.SlidingExpiration = true;49 });50 51 #endregion52 53 var app = builder.Build();54 55 // Configure the HTTP request pipeline.56 if (app.Environment.IsDevelopment())57 {58 app.UseMigrationsEndPoint();59 }60 else61 {62 app.UseExceptionHandler("/Home/Error");63 // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.64 app.UseHsts();65 }66 67 app.UseHttpsRedirection();68 app.UseStaticFiles();69 70 app.UseRouting();71 72 app.UseAuthentication();73 app.UseAuthorization();74 75 app.MapControllerRoute(76 name: "default",77 pattern: "{controller=Home}/{action=Index}/{id?}");78 app.MapRazorPages();79 80 app.Run();
上述代码用默认选项值来配置 Identity。 可通过依赖关系注入向应用提供服务。通过调用UseAuthentication启用 Identity。UseAuthentication
向请求管道添加身份验证中间件。
Identity测试
运行程序,默认打开Home/Index页面
1. 注册用户
点击注册链接,打开注册窗口,输入用户名,密码,点击注册按钮,如下所示:
注意,如下注册校验不通过,会有错误信息提示,如下所示:
2. 登录
注册成功后,点击登录链接,即可打开登录窗口,如下所示:
登录成功后,显示如下所示
3. 登出
点击Logout链接,可以登出,重新返回Home/Index首页,并显示未登录状态。如下所示:
身份验证
通过模板创建的项目,默认情况下,Home/Index是没有身份验证的,可以在HomeController增加Authorize特性,增加身份验证,如下所示:
1 using DemoCoreIdentity.Models; 2 using Microsoft.AspNetCore.Authorization; 3 using Microsoft.AspNetCore.Mvc; 4 using System.Diagnostics; 5 6 namespace DemoCoreIdentity.Controllers 7 { 8 [Authorize] 9 public class HomeController : Controller10 {11 private readonly ILogger_logger;12 13 public HomeController(ILogger logger)14 {15 _logger = logger;16 }17 18 public IActionResult Index()19 {20 return View();21 }22 23 public IActionResult Privacy()24 {25 return View();26 }27 28 [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]29 public IActionResult Error()30 {31 return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });32 }33 }34 }
注意,如果要对某一个action增加验证,则可以将Authorize特性添加在action上,进行更详细的身份验证。
添加成功后,再次运行程序打开Home/Index时,则会自动跳转到登录页面,如下所示:
以上就是ASP.NET Core MVC使用Identity进行身份验证的全部内容。
关键词:
天天热点评!ASP.NET Core MVC 从入门到精通之Identity入门
世界今热点:对建造清代故宫影响最大的工匠,原来是这一家人!
合资品牌的无奈!奥迪之后丰田挂牌:我们也有纯电动请往里进
苹果Mac OS被指碰瓷WinXP经典壁纸:还真不是玩笑
世界快资讯:年轻人压力较大 乘联会崔东树:中国车市还得指望中老年人
又一新能源车企被申请破产!曾被称为“四小龙”之一
珠碱商品报价动态(2023-06-17)
看点:只需4年 PCIe 7.0硬盘有望追上DDR5内存:性能狂飙
人不在学校却被抬到校长面前拨穗 全场欢呼鼓掌:不想让舍友留下遗憾
嫌榴莲太臭?可它这3个好处“香”到不行!
《闪电侠》豆瓣8分:超七成观众给出4星以上好评
生来上等命,前有贵人,后有靠山,注定好运不断的星座,日后必成大器
3999元起 蔚来天穹车尾帐发布:10分钟快速搭建“一室一厅”
腾讯、网易游戏公布端午未成年人限玩时间:高考后准大学生仍被限
天天快看:中国车第一次!领克03高性能特别版首发:原厂防滚架可上路
酷睿i9-13700H VS.锐龙9 7940H全面对比:AMD仍有很长的路要走
天天热推荐:布林肯冀访华改善中美沟通避免引发冲突 中方促美尊重核心关切
今日热门!分心驾驶致5人身亡 家属质疑10个气囊全未弹开 丰田销售:后方撞击不能触发
深圳邮局海关查获23只外来毒虫!内含秘鲁巨人蜈蚣 天天通讯
宣布对西安工厂投资43亿元:消息称美光也要向印度投资10亿美元
韩方曝出:福岛核污水超标2万倍
比小米便宜一半!TCL雷鸟Mini LED电视85英寸只要7599元 焦点简讯
理想L7/8/9魔毯空气悬挂2.0实测:防刹车点头来了 _环球滚动
GPT-4满分通过MIT本科数学考试!这套提示词火了
看热讯:10万出头续航505km 江淮钇为3上市:打的就是比亚迪海豚
不靠高精地图!小鹏汽车演示北京无图区智能辅助驾驶:稳如老司机_全球今亮点
Android-JNI开发概论-动态
鲍威尔_1937~_关于鲍威尔_1937~简述_消息
全球今日讯!华为NCA智能驾驶来了!余承东:超越特斯拉FSD 这15个城市率先体验
vivo X90s跑分出炉:165万安卓性能天花板!领先20万-全球实时
从泰山弃将到亚泰宠儿,莱昂纳多逆袭霸榜,机会总留给有准备的人-每日速递
软件开发人员必须阅读的20本书_每日速看
快资讯丨语音社交源码知识语音房间功能的实现
《安富莱嵌入式周报》第315期:开源USB高速分析仪,8GHz示波器开发, 600行C编写RISC-V内核,英特尔推出用于开发人员等宽字体,便携物联网监测器_
韩国出现地产危机房价暴跌近20%?可以“免费住”的全租房模式暗藏风险
网友吐槽“高考后还要被防沉迷” :腾讯游戏官方高情商回应
8粽+4咸蛋21元:五芳斋旗下端午礼盒大促
美司法部申请保护令动议,要求阻止特朗普公开机密文件
上周纯碱期价有所下跌
从《闪电侠》到《蝙蝠侠》
货车撞上奔驰反被奔驰车主请吃饭 对方生活不易:网友点赞
比亚迪杀进法拉利、兰博基尼老家:BYD ATTO 3、汉、海豚、海豹正式进军意大利|头条
村民深夜失足坠崖 酉阳民警紧急救援 环球头条
俄方称将重提“北溪”管道遭破坏事件调查话题
iOS 17淘汰iPhone 8、X等:苹果老机型贬值率激增-滚动
环球动态:张雪峰回应质疑:大学专业要选能吃上饭的 要为自己负责
【报资讯】6月16日基金净值:鹏华环保产业股票最新净值3.987,涨1.71%
每日聚焦:马云近况曝光:在东京教书 与大学生合影 与汪涵聚餐发福变胖
开始担心被“抢饭碗”了:越南打工人不加班逼急中国老板 不为钱放弃生活
焦点信息:1314玫瑰小镇魔法花园 1314玫瑰小镇登录
读数据压缩入门笔记06_上下文转换_速看
【环球新要闻】泡泡玛特4r出透卡什么意思 泡泡玛特几r出透什么意思
天天观热点:Polly简单使用
go语言list表
北京警方依法行政拘留冲入球场拥抱梅西的球迷
女子拆145个盲盒拒付款!父亲称其有精神病闹上法庭:结果出来了
每日观察!电影《消失的她》预售票房破千万:陈思诚监制 倪妮主演
广东暴雨积水成河:有人屋内钓鱼 有人"水上摩托"
每日播报!不再依赖进口 国产磁共振医疗装备重大突破:绰号“白胖子”
天天观点:未通过网络安全审查 禁止采购!美光宣布在中国投资超43亿元
6月16日基金净值:景顺长城远见成长混合A最新净值1.1679,涨2.43% 要闻速递
2023高考英语作文预测热门话题_2018热门话题新闻作文100字
每日看点!iso怎么转换为gho_怎样才能把ISO文件转换成GHO文件 1111
Kotlin协程-从理论到实战
常见WebShell的流量特征
今日报丨01. 组建知识星球服务体系
嵩山少林塔沟武校学费_嵩山少林塔沟武校
《云顶之弈》网页版云游戏上线:PC互通 手机点开就能玩
环球快资讯丨最美“小丑女”演女主!《芭比》真人电影国内定档:7月21日上映
环球今头条!玩家哭了!女子带100张《塞尔达传说:王国之泪》卡带入境被海关查获
一之濑拓实和小松奈奈第一次见面(一之濑拓实)_天天快消息
今日视点:美股盘初:Adobe涨约5%,维珍银河涨超45%
普通人也能太空旅行 我国将推出商业航天项目:最快5年后|全球要闻
世界时讯:阿里总裁谈马云近况:他在东京教书 很开心
资讯:奥运冠军苏翊鸣获得清华大学保送资格 发文感谢:18岁三个愿望都实现了
法官曼司亚:一起离婚案件她跟踪回访了12年
当前关注:聊聊Flink必知必会(四)
【世界快播报】Kotlin协程-从一到多
金科地产8.8亿元债券本息未按期偿付 持有人会议仍在表决中 新动态
向佐晒儿子周岁宴,现场紧搂郭碧婷秀恩爱,儿女露正脸都是高颜值_快资讯
江淮钇为3上市:最长续航600公里、8.99万元起_天天资讯
酷睿Ultra来了!Intel史上最混乱一代 还有马甲
谨慎下载 Win10 ISO镜像被黑客下马:攻击手法罕见_环球热消息
报道:博尔特4x100
LGV引理
【世界新要闻】Docsify on VPS,搭建最简个人博客
先正达集团IPO过会 沪市主板即将迎来全球农业龙头企业
今日热文:手握手的承诺 心贴心的服务_手握手
男孩玩氢气球砸到吹风机爆燃 妈妈被严重烧伤:画面触目惊心
美国能源部资助Intel 1220万元:开发2000W散热技术-天天热资讯
狂喝红牛能抗老?
不忘挖井人!奔驰Vision One-Eleven概念车首发:致敬经典实验车|天天速读
刷新纪录!41颗卫星共乘一枚火箭座位怎么排:全靠它了
精选!蜂蜜的种类
结案了!in到底用不用索引,啥时候能用啥时候不能用-天天新消息
lua中 . 和 : 的区别
港人北上消费升温 香港零售业对人流量持乐观态度_世界新消息
前沿资讯!欧盟机构:6月初全球平均气温创纪录
世界百事通!理想MPV设计手稿曝光 李想:设计灵感不是和谐号 而是鲸鱼
女儿高考完提出3个要求妈妈崩溃:养了个祖宗|天天速看