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入门 环球观速讯
- 生态修复力度不断加大 打造野生动物栖息乐园
- Mysteel晚餐:下周多座高炉计划复产,钢厂铁矿石库存增加|环球速递
- 游族AI创新院揭牌成立-天天热推荐
- 淡斑效果排名第一的产品?2023国货好物值得收藏!-世界微速讯
- nba2k13怎么空接(nba2k13怎么样)
- 电子商务属于哪一大类专业_电子商务属于哪个专业类别|全球看热讯
- 房贷首付多少最容易通过,房贷提高首付贷款好批吗?
- 【全球聚看点】记者:拜仁有意引进小基耶萨,准备向尤文报价5000万欧
- 当前头条:入党介绍人意见转预备党员_入党积极分子转预备党员介绍人意见
- 商务部:5月餐饮等服务消费持续回升 城乡消费同步恢复_环球看点
- “催收巨头”湖南永雄下属公司复工,员工:现在到手工资不足千元-每日观察
- 是白骨精还是玉兔精?中考语文题引争议,网友:难到变态 世界滚动
- 赵小侨刘亮佐结婚陈乔恩当伴娘_自称这是最后一次
- 盐城市优化金融服务激活实体动能
- 《光环》游戏未现身 Xbox 展示会,菲尔・斯宾塞解释原因 天天微速讯
- 【天天新要闻】本周末辽宁高温炎热天气持续 局地最高气温将达40℃以上
- 一声叹息!曾席卷全南京的网红商业,如今竟无人问津?_天天新视野
- 合资车企们,还会给4S店输血吗? 焦点
- 金融支持全面推进乡村振兴 央行等五部门联合发布指导意见
- 当前快播:佛山市高质量发展论坛暨2023年第一期“佛商论坛”举行
- 海口市综合行政执法局琼山分局开展“两违”普法宣传活动|世界快讯
- 全球即时:股票行情快报:佛山照明(000541)6月16日主力资金净买入295.80万元
- 焦点快播:假面骑士极狐:未来人贼心不死,打算利用茨姆莉,除掉浮将军
- 注意 这些道路将实施交通管制|环球最资讯
- 财科院赵全厚:考虑疫情对地方财政的冲击,建议适当顺延隐性债务化解时限 世界快看点
- 巨蟹座男人的可怕之处_巨蟹座男生的致命弱点|全球观热点
- 朝阳奶西地块“双触顶”后摇号 北京城建摇中
- 专题讲座连连看 扬州航务中心第二期扬帆讲堂开讲啦_当前视讯
- 儒林外史的作者是谁拼音_儒林外史的作者是谁-速读
- 肥西宣传的配套要素最高端、最齐全的城市区域在哪?|天天快消息
- 迪丽热巴成了流行的穿法叫“露安全裤”,显腿长,更有女人味-焦点消息
- 同程旅行正式启动线下门店加盟计划
- 聚焦“哈洽会”|哈尔滨农商银行副行长牟振宇:以贴心专业的实际行动为“哈洽会”参展商提供金融服务_热点在线
- 环球播报:AI创作:改变游戏产业的游戏规则
- 优德精密(300549.SZ):德系智能拟300万元设立贸易公司
- 餐饮税率是多少2023年_餐饮税率是多少
- 消息!大航海之路什么职业好吟游诗人,大航海之路新职业吟游诗人
- 每日关注!Bose QC35 II用户抱怨最近的更新后噪音消除恶化
- 我国经济运行保持恢复态势 重点在六方面发力
- 通信设备板块涨2.91% 光库科技涨20%居首 全球热消息
- 当前信息:完全数字化理念 奔驰发布C111概念车预告图
- 怪物猎人p3高清版显血金手指代码_怪物猎人P3金手指使用方法|天天观焦点
- 快讯:被命运扼住了喉咙 中交兴路货车司机“曙光计划”让人心有所依
- 全球快讯:多地网约车新增按下“暂停键”,灵活就业者还能入场吗?
- 荣威D7官图发布 定位中大型轿车/年内上市_天天看热讯
- 唯品会开启618年中特卖节高潮期 运动户外等品类迎来增长
- 先进制造业和现代服务业融合共生 增强制造业核心竞争力
- cad块编辑窗口不见了(cad块编辑窗口不见)
- 【天天热闻】2023摆摊卖什么赚钱成本又低_冬天卖什么赚钱
- 孩子上学事宜 96339帮您咨询
- 韩国K9自行榴弹炮:“明星”火炮风光不再
- 焦点关注:6月16日汇连聚(上海)天然橡胶价格平稳
- 恒宇信通:6月15日融资买入66.65万元,融资融券余额2201.23万元 环球简讯
X 关闭
最新资讯
- 郏县“美食六绝”的豆腐菜,味道鲜美惹人爱-当前热文
- 天天最资讯丨安彩高科: 公司无相关计划。
- 多家村镇银行跟进下调存款利率 调降后部分5年期定存利率最高仍达4%-今日看点
- 比亚迪、哪吒、帕萨特…… 69 款新能源汽车下乡,老乡们选哪款?完整名单公布
- 早稻进入抽穗扬花期 科学田管助力丰产丰收
- 焦点速递!威星智能(002849)盘中异动 股价振幅达9.25% 上涨6.57%(06-16)
- 2.0T家用SUV应该怎么选?除了看动力还得看这些细节_世界消息
- 国债期货开盘多数下跌
- 冰点激光脱毛治疗多少钱_冰点激光脱毛能维持几年有副作用吗
- 星光大道歌手大全_星光大道歌手
- 我国已建成村级公共法律服务实体平台54.9万个
- 每日速递:新款路虎发现运动版,外形/内饰均升级,6月16日亮相
- 违纪违规,15名考生被处理!_每日讯息
- 女子多次打赏男主播后奔现,发现对方有家室后被拉黑 ?-天天滚动
- 世界观速讯丨嘉吉动物营养全球创新中心在山西运城正式开业
- 七里香吉他谱原版前奏solo(七里香吉他谱原版) 全球今热点
- 焦点快报!国际绿证为新能源产业注入新动能 助力新疆实现“双碳”目标
- 江门中微子实验站加紧建设|世界观察
- 每日快讯!拔罐多长时间一次最好_拔罐多久拔一次最好
- 全球快资讯:2年多了200万张驾驶员证:网约车还是中年人的退路吗?
- “千万工程”:一场持续二十年的美丽接力 天天快资讯
- 首届世界互联网大会主题_首届世界互联网大会以什么为主题
- 当前信息:青藤之恋怎么注销账号多久(青藤之恋怎么注销账号)
- 天天微动态丨孩子出现“二阳”症状 是否能用连花清瘟缓解?
- 当前看点!冯潇霆郜林加盟!两大主力留队,重组恒大班底,广州中甲阵容浮现
- 天天热门:天元宠物:6月14日融资买入71.17万元,融资融券余额2802.06万元
- 全球今头条!西安市中心医院开展“世界献血者日”宣传活动
- 环球热点!1至5月新能源汽车、充电桩产品产量同比分别增长37%和57.7%
- 1600余名师生同台竞演 宝安区第二届校园古诗词表演大赛收官-天天观天下
- 全球视讯!5月70城新建商品住宅售价环比整体涨幅回落 二手住宅环比下降
- 同庆楼(605108):6月14日北向资金增持8.83万股-天天热资讯
- 阻击松下微波炉?格兰仕子公司举报上海国企云赛智联
- 6月14日基金净值:广发价值优势混合最新净值1.3896,跌1.12%
- 学习雷锋黑板报_学习雷锋做好事
- 速看:explorer_exe应用程序错误怎么办 应用程序错误解决办法
- 刚刚!750亿A股“紧急护盘” 全球报道
- 古文运动文道结合-古文运动
- 圆锥的做法视频(圆锥的做法)
- 世界球精选!5月紧凑车销量榜TOP10:轩逸上升为第1,朗逸第3,威朗进入前十
- 18个格怎么到终点_18个格子一次走完图解|世界新资讯
- 猛攻AI,AMD苦追英伟达_世界即时
- 滕州:41个老旧小区改造已全部开工
- 关于猴痘,这些知识请了解!
- 《铁路机车车辆鸣笛噪声污染防治监督管理办法》6月15日起施行
- 联想天逸f41m参数(联想天逸f41配置)
- 美国将部分中国实体列入出口管制“实体清单” 商务部回应-天天视点
- 全球简讯:刘备知道张飞被杀讲4字,诸葛亮听后痛心,赵云听后想归隐
- 江苏南京高淳全力打造公共法律服务新高地
- 天天看点:烟台栖霞市总工会召开工友创业服务综合体筹备会议
- 长江上游九龙坡至朝天门河段航道建设工程通过竣工验收-当前看点
X 关闭