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


- C#MongoDB使用Builders查找派生对象 2022-09-04
- WebMatrix WebSecurity PasswordSalt 2022-01-01
- 良好实践:如何重用 .csproj 和 .sln 文件来为 CI 创建 2022-01-01
- Web Api 中的 Swagger .netcore 3.1,使用 swagger UI 设置日期时间格式 2022-01-01
- 在哪里可以找到使用中的C#/XML文档注释的好例子? 2022-01-01
- 如何用自己压缩一个 IEnumerable 2022-01-01
- C# 中多线程网络服务器的模式 2022-01-01
- MoreLinq maxBy vs LINQ max + where 2022-01-01
- 输入按键事件处理程序 2022-01-01
- 带有服务/守护程序应用程序的 Microsoft Graph CSharp SDK 和 OneDrive for Business - 配额方面返回 null 2022-01-01