C# Web开发教程(九)标识框架[Identity]

news/2025/10/27 11:16:03/文章来源:https://www.cnblogs.com/qinganning/p/19168337

标识(Identity)框架

  • AuthenticationAuthorization
- Authentication: 认证,你是谁
- Authorization: 权限,你有什么权限
  • 1、标识(Identity)框架: 采用基于角色(Role)的访问控制
- (Role-Based Access Control,简称RBAC)策略,内置了对用户、角色等表的管理以及相关的接口,支持外部登录、2FA等。
- 标识框架使用EF Core对数据库进行操作,因此标识框架支持几乎所有数据库。
  • Identity框架使用
    - IdentityUser<TKey>、IdentityRole<TKey>,TKey代表主键的类型。我们一般编写继承自ldentityUser<TKey>、IdentityRole<TKey>等的自定义类,可以增加自定义属性。- NuGet安装: - Install-Package Microsoft.EntityFrameworkCore -Version 6.0.0- Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 6.0.0- Install-Package Microsoft.EntityFrameworkCore.Tools -Version 6.0.0- Install-Package Microsoft.AspNetCore.Identity.EntityFrameworkCore  -Version 6.0.0- 创建继承自ldentityDbContext的类- 可以通过ldDbContext类来操作数据库,不过框架中提供了RoleManager、UserManager等类来简化对数据库的操作。- 部分方法的返回值为Task<IdentityResult>类型
// MyUser.csusing Microsoft.AspNetCore.Identity;namespace WebApplicationAboutIdentity
{// 默认的 IdentityUser 使用 string 类型主键,这里改为 longpublic class MyUser:IdentityUser<long>{}
}// MyRole.cs
using Microsoft.AspNetCore.Identity;namespace WebApplicationAboutIdentity
{public class MyRole:IdentityRole<long>{}
}// MyDbContext.csusing Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;namespace WebApplicationAboutIdentity
{// 继承 IdentityDbContext,指定自定义的用户类型、角色类型和主键类型// 会自动创建 Identity 相关的所有表(Users、Roles、UserRoles 等)public class MyDbContext : IdentityDbContext<MyUser,MyRole,long>{public MyDbContext(DbContextOptions<MyDbContext> options) : base(options){}}
}// DbContextDesignTimeFactory.csusing Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Design;namespace WebApplicationAboutIdentity
{public class DbContextDesignTimeFactory: IDesignTimeDbContextFactory<MyDbContext>{public MyDbContext CreateDbContext(string[] args){// 配置数据库连接,用于 EF Core 迁移命令DbContextOptionsBuilder<MyDbContext> builder = new DbContextOptionsBuilder<MyDbContext>();string connStr = "Server=.;Database=idtest1;Trusted_Connection=True;";builder.UseSqlServer(connStr);MyDbContext ctx = new MyDbContext(builder.Options);return ctx;}}
}// Program.cs......
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
using WebApplicationAboutIdentity;var builder = WebApplication.CreateBuilder(args);
......// 数据库配置
builder.Services.AddDbContext<MyDbContext>(opt =>
{opt.UseSqlServer("Server=.;Database=idtest1;Trusted_Connection=True;");
});
// Identity 配置
builder.Services.AddDataProtection();
builder.Services.AddIdentityCore<MyUser>(options =>
{// 简化密码策略options.Password.RequireDigit = false;options.Password.RequiredLength = 6;options.Password.RequireLowercase = false;options.Password.RequireNonAlphanumeric = false;options.Password.RequireUppercase = false;// 设置令牌提供程序options.Tokens.PasswordResetTokenProvider = TokenOptions.DefaultEmailProvider;options.Tokens.EmailConfirmationTokenProvider = TokenOptions.DefaultEmailProvider;
});
// Identity 构建器
// 指定用户和角色类型,配置使用 Entity Framework 存储,添加默认令牌提供程序,注册用户管理器和角色管理器
IdentityBuilder idBuilder = new(typeof(MyUser),typeof(MyRole),builder.Services);
idBuilder.AddEntityFrameworkStores<MyDbContext>().AddDefaultTokenProviders().AddUserManager<UserManager<MyUser>>().AddRoleManager<RoleManager<MyRole>>();var app = builder.Build();
......app.Run();- 最后,作数据库迁移并更新数据库
  • 小结:这个配置为应用程序提供了完整的用户认证和授权基础架构
- 自定义主键类型: 使用 long 代替默认的 string
- 简化的密码策略: 降低了密码复杂度要求
- 完整的 Identity 功能: 包含用户管理、角色管理、令牌生成等
- SQL Server 存储: 使用 Entity Framework Core 和 SQL Server

数据库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/947401.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025NFC与电子标签推荐榜:深圳中签科技领跑,NFC 标签/芯片/卡、电子芯片/标签高效应用方案精选

2025 年物联网场景持续深化,NFC 芯片、电子标签作为设备互联的核心组件,需求覆盖零售溯源、智能穿戴、物流管理等多个领域。其中 NFC 标签的兼容性、电子芯片的稳定性成为市场选择关键,经技术实力与应用反馈筛选,以…

行业震动!罗永浩数字人电商直播首秀创下AI直播新标杆!

继5月以4 小时 GMV 破 5000 万的真人直播首秀引爆电商后,"直播界老将" 罗永浩再度以创新姿态回归 —— 其数字人形象于 6 月 15 日登陆电商直播间,以 1300 万 + 观看人次、5500 万元 GMV 的亮眼数据,刷新…

2025充电桩推荐榜:山东康姆勒电力领跑,直流/电动重卡/公共/快充/重卡/160kw/400kW /群充/新能源/充电桩高效补能方案实力之选

2025 年新能源出行需求持续攀升,充电桩作为核心补能设施,其效率与适配性成为市场焦点。其中直流充电桩的快充能力、群充充电桩的多车服务特性,更是用户关注重点。经技术实力与市场反馈筛选,以下企业展现出强劲竞争…

2025年有实力冷拔丝优质厂家推荐榜单

2025年有实力冷拔丝优质厂家推荐榜单 在建筑、制造、五金等行业中,冷拔丝作为一种重要的金属材料,广泛应用于桁架、管桩、网片、制钉等领域。选择一家实力雄厚、品质可靠的冷拔丝厂家,能够确保产品质量稳定、供货及…

2025修护/二硫化硒去屑/香氛/控油蓬松/ 洗发水推荐榜:MASIL 玛丝兰领衔,修护 / 去屑 / 控油蓬松品类的实力之选

在2025年的洗护市场中,洗发水品类持续细分,修护、去屑、香氛、控油蓬松等需求日益明确。经过市场口碑与技术实力筛选,以下品牌凭借专业表现脱颖而出,其中西安悦己容生物科技旗下的 MASIL 玛丝兰尤为亮眼。 西安悦己…

2025-10-27 在浏览器打开网站A输入数字后变成小动物,其他网站为正常数字输入 ==》 修改字体

最近遇到一个奇怪的问题,就是生产的pc端给客户使用时,客户发现输入的数字变成了小动物,不仅如此,不用输入,其他只要涉及到数字的都会变成小动物。 远程过去,确实如此,原以为是客户自己安装的输入法问题,但是把…

2025年知名的导热油电加热器实力厂家TOP推荐榜

2025年知名的导热油电加热器实力厂家TOP推荐榜 在工业加热领域,导热油电加热器因其高效、稳定、安全等特性,被广泛应用于石油、化工、电力、冶金等行业。随着技术的不断进步,市场对电加热器的性能、安全性和智能化…

2025年知名的不锈钢雕塑最新TOP品牌厂家排行

2025年知名的不锈钢雕塑最新TOP品牌厂家排行不锈钢雕塑作为现代城市景观的重要组成部分,以其耐腐蚀、高强度、美观大方等特点,在公共艺术、商业空间和私人定制领域广受欢迎。随着2025年城市更新和艺术需求的持续增长…

2025年热门的输送带厂家推荐及选择指南

2025年热门的输送带厂家推荐及选择指南 输送带作为工业运输系统中的核心部件,广泛应用于矿山、冶金、水泥、港口、电力等行业。随着工业自动化程度的提高,市场对输送带的质量、耐用性和定制化需求日益增长。选择一家…

2025年比较好的破碎机TOP实力厂家推荐榜

2025年比较好的破碎机TOP实力厂家推荐榜 在矿山开采、建筑拆除、冶金化工等领域,破碎机作为核心设备之一,其性能、稳定性和售后服务直接影响生产效率。随着技术的进步,2025年的破碎机市场涌现出一批技术领先、口碑…

Day5表单-lable标签和按钮

lable标签"增大表单控件的点击范围"通俗来讲就是在多选框应用时,假设是性别选择,用户除了点击那个小圈进行勾选,还可以直接点击男或者女字来勾选,而为了达到这种效果一共有两种方法<!DOCTYPE html>…

IO出pin

proc align_to_grid {value} {set grid 0.005return [expr round($value / $grid) * $grid] } define_proc_arguments VDD_IO_pin \-info "Extend VDD IO pins" \-define_args {{-IOcelltype "IO insta…

2025年诚信的万级净化工程厂家推荐及采购指南:定制定做公司

2025年诚信的万级净化工程厂家推荐及采购指南:定制定做公司开篇介绍在当今高科技产业快速发展的时代,净化工程已成为半导体、医药、食品等众多行业的基础设施需求。万级净化工程作为洁净室建设的重要标准,对生产环境…

2025年口碑好的博物馆定制展柜实力厂家TOP推荐榜

2025年口碑好的博物馆定制展柜实力厂家TOP推荐榜在博物馆、艺术馆和文化展示场所中,展柜不仅是保护珍贵文物的第一道防线,更是提升展品观赏价值、营造沉浸式观展体验的重要载体。随着2025年文化产业的蓬勃发展,市场…

详细介绍:MobileNet v1:轻量化卷积

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025年质量好的不锈钢电力设备厂家实力及用户口碑排行榜

2025年质量好的不锈钢电力设备厂家实力及用户口碑排行榜在电力设备行业,不锈钢材质因其优异的耐腐蚀性、高强度和使用寿命长等特点,已成为高端电力设备制造的首选材料。随着我国电力基础设施建设的不断推进,对高质量…

如何实现服务器文件自动同步,从而提升数据管理效率?

在当前的数字化时代,企业面临着海量数据处理的挑战,服务器文件自动同步显得尤为重要。通过自动同步,企业能够确保不同设备和位置间的数据一致性,从而减少人为错误和数据丢失的风险。此外,这一技术实现了高效的数据…

2025年知名的低速逆止器最新TOP厂家排名

2025年知名的低速逆止器最新TOP厂家排名低速逆止器作为机械传动系统中的关键部件,在冶金、矿山、起重运输等行业中发挥着不可替代的作用。随着工业4.0的深入推进,市场对低速逆止器的性能、可靠性和使用寿命提出了更高…

laya spine事件

laya spine事件// 加载完成事件 this.spine.on(Laya.Event.READY, this, ()=>{let skinName: string = "test";this.spine.showSkinByName(skinName); });// spine触发事件 this.Spine_bg.on(Laya.Event.…

2025年知名的玻璃釉电位器厂家最新权威推荐排行榜

2025年知名的玻璃釉电位器厂家最新权威推荐排行榜 玻璃釉电位器作为电子元件中的关键部件,广泛应用于工业自动化、汽车电子、医疗设备、消费电子等领域。随着技术的进步和市场需求的增长,玻璃釉电位器的性能、精度和…