ASP.NET Core 3.X 集成Identity,实现注册、登录、登出

本文介绍了如何在ASP.NET Core 3.x项目中集成Identity,实现用户注册、登录和登出功能。通过引入相关Nuget包,创建Context和UserModel,配置Startup,进行数据迁移,并解决迁移过程中遇到的问题。最后展示了AccountController中的授权业务。
摘要由CSDN通过智能技术生成

最近做一个小项目,实在不想在用户鉴权与授权上重复造轮子,本着“拿来主义”的想法,因为不想在创建工程的时候被“HTTPS”,所以想去集成一下微软自带的Identity组件,在网上找了很多资料,都是.net core 2.X的集成方式,踩了不少坑,也从2.X中汲取了不少经验,特此立贴,以记录学习过程。以下为集成步骤:

1.Nuget引包

Microsoft.AspNetCore.Identity.EntityFrameworkCore【核心组件】

Microsoft.EntityFrameworkCore.SqlServer【数据库交互组件(SQLServer)】

Microsoft.EntityFrameworkCore.Tools【EF数据库交互组件】

建议按上述引用顺序进行引用,可能会引发意外错误

2.建立Context和UserModel

建立两个类文件,分别是IdentityUserContext,AppUser。需要注意的是IdentityUserContext必须继承IdentityDbContext,AppUser必须继承IdentityUser,IdentityUserContext实际上是EF中DBContext的实现,用于交互数据库

代码如下:

using ManagerCore.Models;
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;

namespace ManagerCore.Context
{
    public class IdentityUserContext : IdentityDbContext<AppUser>
    {
        public IdentityUserContext(DbContextOptions options) : base(options)
        {

        }
    }
}

using Microsoft.AspNetCore.Identity;

namespace Identity.Models
{
    public class AppUser : IdentityUser
    {
        /// <summary>
        /// 登录账号
        /// </summary>
        public string LoginName { get; set; }

        /// <summary>
        /// 真实姓名
        /// </summary>
        public string RealName { get; set; }
    }
}

 3.Startup中做组件配置,直接上代码

第一步,添加鉴权配置

        public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext<IdentityUserContext>(options =>
            {
                options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"));
            });
            services.AddIdentity<AppUser, IdentityRole>() // AppUser就是你那个实体类 IdentityRole是Identity默认的
                .AddEntityFrameworkStores<IdentityUserContext>()
                .AddDefaultTokenProviders();

            services.Configure<IdentityOpt
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值