繁体   English   中英

从ASP.net core 2.1中的url获取参数?

[英]Get parameter from url in ASP.net core 2.1?

我有以下方法:

方法

在此处输入图像描述

此方法向 email 发送一个令牌,以便能够恢复正确工作的密码。 现在,我用 JavaScript 创建了以下 function 来检索我在 URL 中的参数,

在此处输入图像描述

这样我就可以得到我在 URL 中的参数,如下所示:

https://localhost:5001/AdminUsers/ResetPassword?token=CfDJ8KA%2FkcFChM9Bp%2F8oQHF0OBo113jwJ7upCuf31%2FnOQ%2BWnPS8Dl6kvAMvhRJ1wWsJEKvckfViPbczsNs09kmnUXcMtY7yxnePjossD3LwfVrJo1EXCRk%2B%2FyluiExuLziOmrtVrdMbVKUvn0oBti5vsF%2FOGs2yWdUR%2BFHrGQKe4ioVVnT9m6np0%2FhFjkZawi%2BvHqjM7ayP5cR5VQWTxrhjsvEzJctqsUhEudVXe53JAvmMW%2BYtGFKSSWwOTcp5RFDE9Hw%3D%3D

但此时我正在尝试使用该令牌更改密码,它向我表明令牌无效,但令牌与 URL 中的令牌相同,如下图所示:

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述 在此处输入图像描述

我正在做的是通过操作 URL 执行以下操作:

  • 我发送令牌,以便能够更改密码
  • 在我返回一个表单视图之后,用户必须在其中输入用户名和密码
  • 我通过 Ajax 调用收到用户和密码,因为我使用的是 Knockout.js 框架

我希望你能帮助我,谢谢!

在 URL 中,值是 URL 编码的,因此它可以在 URL 中有效使用。当通过 URL 提供时,框架足够智能,可以在将值绑定到适当的操作参数之前对其进行解码。 但是,当您随后通过请求正文发送它时,就不会再发生这种情况。 该值按原样设置在您的 model 上,是的,它不会与实际令牌匹配,因为它们是非常不同的字符串。

总之,您需要在发出 AJAX 请求之前在客户端对值进行 URL 解码,或者在实际尝试使用令牌之前在服务器端对值进行 URL 解码。 在客户端,您可以使用: decodeURIComponent(value) 服务器端,您需要使用HttpUtility.UrlDecode(value)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM