ASP.NET Core 2.2 Web API project: implement email confirmation callback url using endpoint(ASP.NET Core 2.2 Web API项目:使用端点实现电子邮件确认回调URL)
问题描述
关于生成确认令牌,然后向用户发送确认电子邮件链接,我正在尝试做一些与Microsoft(Docs)提供的示例稍有不同的操作。
目前,我在CreateUserAsync控制器方法中有几个步骤来创建用户,如果成功,则会生成一个电子邮件确认令牌(使用GenerateEmailConformationTokenAsync方法)-到目前为止,似乎有效的令牌会生成。
然后,下一步是使用SendGrid(根据Microsoft文档配置)生成一个确认电子邮件链接(使用Request.Program、Request.host等属性),并通过电子邮件发送给用户-同样,这一步非常有效,我能够看到测试电子邮件出现在测试Gmail帐户中。
问题似乎出在生成的代码(令牌)上-我尝试使用WebUtility的UrlEncode方法,但这对令牌没有任何影响它保持不变,当我尝试测试URL时收到一条消息:
请求筛选模块配置为拒绝包含双重转义序列的请求
我如何在Web API项目中实现上述内容的任何建议(与Microsoft文档站点上的示例相反:https://docs.microsoft.com/en-us/aspnet/core/security/authentication/accconfirm?view=aspnetcore-2.2&tabs=visual-studio)。
推荐答案
我通过将POST更改为GET并使用[FromQuery]属性来生成提供必要查询字符串参数值的更传统的查询字符串参数样式URL来解决此问题。
在使用WebUtility.EncodeUrl方法创建确认URL时,我还必须确保对电子邮件确认令牌进行编码,但我发现使用ASP.NET Core时,我的控制器方法(具有[FromQuery]属性)正在对传入的字符串进行解码,因此我不需要在到达时进行解码--但这可能是我正在使用的最新版本的ASP.NET Core 2.2中的一项功能。这篇关于ASP.NET Core 2.2 Web API项目:使用端点实现电子邮件确认回调URL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:ASP.NET Core 2.2 Web API项目:使用端点实现电子邮件确认回调URL
基础教程推荐
- JSON.NET 中基于属性的类型解析 2022-01-01
- 如何动态获取文本框中datagridview列的总和 2022-01-01
- 将事件 TextChanged 分配给表单中的所有文本框 2022-01-01
- 从 VS 2017 .NET Core 项目的发布目录中排除文件 2022-01-01
- 全局 ASAX - 获取服务器名称 2022-01-01
- 在 VS2010 中的 Post Build 事件中将 bin 文件复制到物 2022-01-01
- 是否可以在 asp classic 和 asp.net 之间共享会话状态 2022-01-01
- 首先创建代码,多对多,关联表中的附加字段 2022-01-01
- 经典 Asp 中的 ResolveUrl/Url.Content 等效项 2022-01-01
- 错误“此流不支持搜索操作"在 C# 中 2022-01-01
