代码之家  ›  专栏  ›  技术社区  ›  Tony

ASP.NET MVC向控制器操作传递加密字符串时出现问题

  •  1
  • Tony  · 技术社区  · 15 年前

    让我们把控制器的一个动作作为一个参数,变成一个加密字符串。问题是,当URL看起来

    MyAccount/Activate/?code=DbXQ2SQiwYYiDhC+ahAppa23P95YifE2z6uyvnhWCFE=
    

    该操作中的“code”参数如下:

    DbXQ2SQiwYYiDhC ahAppa23P95YifE2z6uyvnhWCFE=
    

    (缺少“+”字符)

    2 回复  |  直到 15 年前
        1
  •  3
  •   Spencer Ruport    15 年前

    URL是URL编码的,+被解释为一个空格。在通过querystring之前,使用Server.UrlEncode()方法对加密的字符串进行编码。

    或者如果这个加密字符串来自客户端,则需要使用javascript对数据进行编码。我相信有很多关于网络的文章都是关于如何做到这一点的。下面是一个例子: http://plugins.jquery.com/project/URLEncode

        2
  •  1
  •   villecoder    15 年前

    您需要对GET字符串中的code参数进行URL编码。应该是

    MyAccount/Activate/?code=DbXQ2SQiwYYiDhC%2bahAppa23P95YifE2z6uyvnhWCFE%3d