0

我有一个 webform 应用程序,当您登录时,它会将我带到我的 MVC 应用程序的主页。在登录过程中,我正在形成一个将我带到我的 MVC 应用程序的 url。在这个 URL 中,我附上了一个加密的用户 ID。问题是这个加密的用户 ID 包含特殊字符,例如“+”或“/”。它搞砸了,把我带到了一个 404 页面。如果没有特殊字符,那么它可以正常工作并将我带到正确的页面。

这就是我形成 URL 的方式

 Response.Redirect("http://mysite/UserRedirect/" + encryptedUserId)

MVC方法

 [HttpGet]
 public ActionResult UserRedirect(string id = "")
 {
   //Decrypts UserID, then takes you to the homepage         
     return("Index");
 }

如果 encryptedUserId 包含像下面的示例这样的特殊字符,它就会搞砸。

7hnQ+Nc= -> http://mysite/UserRedirect/7hnQ+Nc= ("+" sign)

或者

 E/VDb7l= -> http://mysite/UserRedirect/E/VDb71 ("/" sign)

否则,如果没有像下面这样的特殊字符,那么它可以正常工作

NIatmgg= -> http://mysite/UserRedirect/NIatmgg=

在服务器上部署应用程序时会出现此问题。我应该如何处理这个?

当有一个“/”时,它甚至没有进入我的 UserRedirect 方法。谢谢

4

2 回答 2

1

原来你需要用“?=”而不是斜线“/”来形成url。这现在有效。谢谢

于 2013-07-24T13:07:39.580 回答
0

您是否确保在重定向调用之前对 encryptedUserId 变量进行编码(通过 UrlEncode)并在 UserRedirect 操作中对 id 变量进行解码(通过 UrlDecode)?

于 2013-07-22T23:01:21.467 回答