【发布时间】:2018-01-03 19:47:04
【问题描述】:
我正在开发一个 asp.net mvc 6 应用程序,作为应用程序的一部分,我们将发送电子邮件,其中包含一个链接,用户可以单击该链接将它们发送到特定的操作方法。 电子邮件链接的示例是
http://identity.platform:7000/account/register?emailinvitation=true&email=yerg@test.com
然后转到 AccountController 的注册操作方法:
Register(string userName, bool emailInvitation=false, string email="" )
我想要的是对 url 进行 Base-64 编码,这样用户就不会想要手动更改任何参数,所以我们有一个类似的链接
所以我的 mvc 应用程序中的流程是
- 接收请求
- 检查是否有url参数需要解码
- 如果是这样,解码并发送到适当的控制器/动作方法
我的问题是,我应该在哪里拦截请求并对其进行解码?这应该发生在路由中还是以后的某个地方?然后如何使用适当的参数重定向到操作方法
【问题讨论】:
-
Base-64 不是加密。更改参数将非常容易。
-
我知道,我只是想防止大多数用户好奇的篡改,这不是一个真正的安全功能
-
您将在该链接访问您的服务器时验证该链接,如果它无效,那么您可以显示错误消息
标签: c# asp.net asp.net-core-mvc