.Net Core 忘记密码未找到
.Net Core Forgot password not found
我正在学习 .Net core Account and password recovery 的教程,但我不确定它是如何工作的。教程说在 startup.cs 中添加电子邮件服务,然后一切就开始工作了。我不知道忘记密码页面在哪里,它与其他页面无关,我检查了隐藏文件和它自己的实际目录(见图),但我从重置密码 link 被重定向到那里。我不知道电子邮件服务是如何被调用的,但我可以设置一个断点并查看它是否被正确的数据击中。我可以看到用于获取用户信息的 sql 查询。此功能是否由核心身份管理?
I have no idea where the forgot password page is located, it not with the other pages
您的 ASP.NET 核心项目中需要 Scaffold Identity。
- 也就是说你需要通过Scaffold Identity添加你需要的页面:ForgotPassword, ForgotPasswordConfirmation, ResetPassword, ResetPasswordConfirmation.
- Scaffold Identity in ASP.NET Core projects
I have no idea how the email service is being called yet I can set a break point and see that it is being hit with the correct data.
Is this functionality managed by core identity?
IEmailSender在包ASP.NET核心Identity.UI,带默认在 DI 中注入的实现 不执行任何操作。
我会在下面详细说明如何发邮件重置密码。重置密码的过程可以先到最后阅读
换句话说,您需要实现IEmailSender。
在你给的link中,已经详细给出了如何实现IEmailSender .
在示例中,使用了 SendGrid 电子邮件提供商。您还可以选择其他电子邮件提供商。
- 您需要先注册一个SendGrid账号,然后创建一个API Key,将您的SendGrid信息存放在appsettings.json中。
- 您可以创建一个 API 密钥,如下所示。
- appsettings.json:
- 发送网格用户:
- 这是您在 SendGird 注册的帐号。比如我用邮箱xxx.test.com注册的,SendGridUser是xxx.test.com.
- 发送网格键:
- 这就是上面提到的API键。
{
... ...
"AllowedHosts": "*",
"SendGridUser": "xxxx",
"SendGridKey": "xxxxx"
}
重置密码的过程可以简单概括如下:
- 在单击link重设密码后请求忘记密码页面
- 输入您的电子邮件地址以重置密码
- 如果您需要重设密码的邮箱地址存在且已被确认,则ForgotPassword中的方法OnPostAsync会发送一个发送到您的电子邮件地址。
- 如果在执行classIEmailSender的Execute方法中设置断点,可以看到发送电子邮件的结果。
- 您可以打开您的邮箱查看link重置您收到的密码,然后输入重置密码并提交表单。
- 表单提交成功后,会请求ResetPassword的OnPostAsync方法,处理会重定向到ResetPasswordConfirmation页面.
结果
我正在学习 .Net core Account and password recovery 的教程,但我不确定它是如何工作的。教程说在 startup.cs 中添加电子邮件服务,然后一切就开始工作了。我不知道忘记密码页面在哪里,它与其他页面无关,我检查了隐藏文件和它自己的实际目录(见图),但我从重置密码 link 被重定向到那里。我不知道电子邮件服务是如何被调用的,但我可以设置一个断点并查看它是否被正确的数据击中。我可以看到用于获取用户信息的 sql 查询。此功能是否由核心身份管理?
I have no idea where the forgot password page is located, it not with the other pages
您的 ASP.NET 核心项目中需要 Scaffold Identity。
- 也就是说你需要通过Scaffold Identity添加你需要的页面:ForgotPassword, ForgotPasswordConfirmation, ResetPassword, ResetPasswordConfirmation.
- Scaffold Identity in ASP.NET Core projects
I have no idea how the email service is being called yet I can set a break point and see that it is being hit with the correct data.
Is this functionality managed by core identity?
IEmailSender在包ASP.NET核心Identity.UI,带默认在 DI 中注入的实现 不执行任何操作。
我会在下面详细说明如何发邮件重置密码。重置密码的过程可以先到最后阅读
换句话说,您需要实现IEmailSender。
在你给的link中,已经详细给出了如何实现IEmailSender .
在示例中,使用了 SendGrid 电子邮件提供商。您还可以选择其他电子邮件提供商。
- 您需要先注册一个SendGrid账号,然后创建一个API Key,将您的SendGrid信息存放在appsettings.json中。
- 您可以创建一个 API 密钥,如下所示。
- appsettings.json:
- 发送网格用户:
- 这是您在 SendGird 注册的帐号。比如我用邮箱xxx.test.com注册的,SendGridUser是xxx.test.com.
- 发送网格键:
- 这就是上面提到的API键。
{ ... ... "AllowedHosts": "*", "SendGridUser": "xxxx", "SendGridKey": "xxxxx" }
- 发送网格用户:
- 您需要先注册一个SendGrid账号,然后创建一个API Key,将您的SendGrid信息存放在appsettings.json中。
重置密码的过程可以简单概括如下:
- 在单击link重设密码后请求忘记密码页面
- 输入您的电子邮件地址以重置密码
- 如果您需要重设密码的邮箱地址存在且已被确认,则ForgotPassword中的方法OnPostAsync会发送一个发送到您的电子邮件地址。
- 如果在执行classIEmailSender的Execute方法中设置断点,可以看到发送电子邮件的结果。
- 您可以打开您的邮箱查看link重置您收到的密码,然后输入重置密码并提交表单。
- 表单提交成功后,会请求ResetPassword的OnPostAsync方法,处理会重定向到ResetPasswordConfirmation页面.
结果