You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ASP.NET Core Identity库中实现用户修改邮箱与密码功能?

在ASP.NET Core Identity中实现邮箱与密码修改功能

一、利用Identity自带页面实现邮箱修改

  • 首先确认项目已引入Microsoft.AspNetCore.Identity.UI包(创建项目时勾选Identity的话默认已包含)。
  • 登录用户访问路径/Identity/Account/Manage/Email即可进入自带的邮箱修改页面,该页面会自动完成以下流程:
    • 验证当前用户身份
    • 接收新邮箱输入
    • 生成邮箱确认令牌并发送验证邮件(需提前配置邮件服务)
    • 处理用户点击确认链接后的邮箱更新逻辑,无需手动操作数据库或生成令牌
  • 若需自定义页面样式或逻辑,可通过脚手架命令生成对应页面文件到项目中,方便修改:
    dotnet aspnet-codegenerator identity -dc 你的DbContext类名 --files Account.Manage.Email
    

二、利用Identity自带页面实现密码修改

  • 登录用户访问路径/Identity/Account/Manage/ChangePassword即可进入密码修改页面,Identity会自动处理:
    • 旧密码验证
    • 新密码强度校验(基于你配置的密码规则)
    • 通过UserManager.ChangePasswordAsync方法生成密码哈希并更新数据库,完全无需手动处理密码哈希逻辑
  • 如需自定义页面,同样用脚手架命令生成文件:
    dotnet aspnet-codegenerator identity -dc 你的DbContext类名 --files Account.Manage.ChangePassword
    

关键配置说明

  • 确保Program.cs中正确配置Identity服务,示例:
    builder.Services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true)
        .AddEntityFrameworkStores<你的DbContext类名>();
    
  • 邮箱确认功能依赖邮件服务,需实现IEmailSender接口并注册到服务容器,示例:
    builder.Services.AddTransient<IEmailSender, CustomEmailSender>();
    // 自行实现CustomEmailSender类,通过SMTP等方式发送邮件
    

内容的提问来源于stack exchange,提问作者David Thielen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 17:32:33