0

基本的なセキュリティ。

コントローラが別のコントローラを呼び出し、パラメータを渡します

return RedirectToAction("VerifyEmail", "Account", new { userId = newUser.Id });

別のコントローラーがそれを受け取ります

public ActionResult VerifyEmail(int userId)
        {
            int test = userId;
            return View();
        }

パラメータはクライアントから表示できますか?つまり、それはいつでもクライアントのマシンに存在しますか?

4

1 に答える 1

1

技術的には、クライアントのマシンに存在します。はRedirectToAction、一時的なリダイレクションを示す 302 応答を送信します。クライアント (ブラウザ) は、これを一般に、新しい GET 要求を発行するコマンドとして解釈します。

フィドラーを実行すると、このようなものがネットワークを介して戻ってきます

HTTP/1.1 302 Found
Cache-Control: private
Content-Type: text/html; charset=utf-8
Location: /Account/VerifyEmail?userId=12354
Server: Microsoft-IIS/8.0
X-AspNetMvc-Version: 4.0
X-AspNet-Version: 4.0.30319
X-SourceFiles: =?UTF-8?B?    
X-Powered-By: ASP.NET
Date: Mon, 04 Mar 2013 17:45:32 GMT
Content-Length: 150
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="/Account/VerifyEmail?userId=12354">here</a>.</h2>
</body></html>

続いて(私の場合)GETリクエストとして

GET /Account/VerifyEmail?userId=12354 HTTP/1.1
于 2013-03-04T17:51:17.203 に答える