Asp.net Core 3.0 Identity 使用smtp账户确认和密码恢复
时间:2019-12-10
本文章向大家介绍Asp.net Core 3.0 Identity 使用smtp账户确认和密码恢复,主要包括Asp.net Core 3.0 Identity 使用smtp账户确认和密码恢复使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
当新建一个core项目后,使用identity基架后,确认邮件出现了错误,并不能正常使用。
建立文档在这里
https://docs.microsoft.com/zh-cn/aspnet/core/security/authentication/scaffold-identity?view=aspnetcore-3.1&tabs=visual-studio#scaffold-identity-into-an-empty-project
参考后发现,并没有实现这个接口,需要自己完成,这是官方文档,可是官方第三方key
https://docs.microsoft.com/zh-cn/aspnet/core/security/authentication/accconfirm?view=aspnetcore-3.1&tabs=visual-studio#require-email-confirmation
下面,使用一个自己的习惯吧,就是用自己的邮箱发送内容给用户。
和官方文档一样,建立一个EmailSender
兄弟 们接代码:
public class EmailSender : IEmailSender { public async Task SendEmailAsync(string email, string subject, string message) { // 设置邮件内容 var mail = new MailMessage( new MailAddress("wangbin5542@163.com", "王彬"), new MailAddress(email) ); mail.Subject = subject; mail.Body = message; mail.IsBodyHtml = true; mail.BodyEncoding = Encoding.UTF8; mail.Priority = MailPriority.High;//邮件优先级 // 设置SMTP服务器 var smtp = new SmtpClient("smtp.163.com", 25); smtp.UseDefaultCredentials = false; smtp.Credentials = new System.Net.NetworkCredential("wangbin5542@163.com", "*******“; smtp.DeliveryMethod = SmtpDeliveryMethod.Network; await smtp.SendMailAsync(mail); } }
然后,我们将以下代码添加到Startup.cs文件的 ConfigureServices
方法中:
- 将
EmailSender
添加为暂时性服务。 - 注册
AuthMessageSenderOptions
配置实例。
services.AddTransient<IEmailSender, EmailSender>();
好了,剩下的就是官方一至内容了。identity还是很方便的。
原文地址:https://www.cnblogs.com/wangbin5542/p/12018921.html
- poj 1088 滑雪
- 八数码难题解法大全
- React第三方组件5(状态管理之Redux的使用⑥Redux DevTools)
- React第三方组件5(状态管理之Redux的使用⑤异步操作)
- HDU - 1846 Brave Game
- React多页面应用4(webpack4 提取第三方包及公共组件)
- zoj 2420
- SPOJ NWERC11B Bird tree
- React多页面应用6(gulp自动化发布到多个环境、生成版本号、压缩成zip等)
- SDIBT 1046 Primary Arithmetic
- 洛谷P2415 集合求和
- React多页面应用5(webpack生产环境配置,包括压缩js代码,图片转码等)
- SDIBT 1046 Primary Arithmetic
- React多页面应用4(webpack自动化生成多入口页面)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法