0

MVC3 のデフォルトの LogOn モデルを使用します。LogOn 部分ビューはレイアウト ビューです。

@Html.Partial( "~/Views/Home/LogOn.cshtml", new MyProject.Models.LogOnModel() ) 

ログオン後の URL は次のとおりです。

http://localhost:20234/?UserName=TestUsername&Password=121212&RememberMe=True

URL にパスワードが表示されないようにします。URL からパスワード (ユーザー名、RememberMe も含む) を削除するにはどうすればよいですか?

4

2 に答える 2

2

GET メソッドを使用してサーバーにデータを転送すると、パラメーターが URL に表示されます。この場合、POST メソッドを使用する必要があります。例えば:

<form action="/Account/Logon" method="POST">
    <input type="text" name="Username"/>
    <input type="text" name="Password"/>
    <input type="submit"/>
</form>
于 2012-09-05T05:45:35.460 に答える
1

1) デフォルト ルートに変更します。

 routes.MapRoute(
                    "DefaultSite",
                    "{controller}/{action}/{id}",
                    new
                        { 
                            controller ="Account",
                            action ="LogOn",
                            id = UrlParameter.Optional
                        }
                    );

2) マスター ロード ファイルに部分的にロードします。

 @using (Html.BeginForm("LogOn","Account",HttpMethod.Post))
    {
        @Html.AntiForgeryToken() 
        @Html.Partial( "~/Views/Home/LogOn.cshtml", new MyProject.Models.LogOnModel())          
    }

3)そして、アカウントコントローラーがログオンロジックを追加しました:

  [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Login(LogOnModel model)
        {
            if (ModelState.IsValid)
            {
                //TODO:

                return RedirectToAction("index", "home");
            }

            // If we got this far, something failed, redisplay form
            ModelState.AddModelError("", @"The user name or password provided is incorrect.");
            return View(model);
        }
于 2012-09-05T05:51:06.873 に答える