0

ログインすると、MVC アプリケーションのホームページに移動する Web フォーム アプリケーションがあります。ログインの過程で、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

0

リダイレクト呼び出しの前に encryptedUserId 変数を (UrlEncode 経由で) エンコードし、UserRedirect アクションで id 変数を (UrlDecode 経由で) デコードすることを確認していますか?

于 2013-07-22T23:01:21.467 に答える