新しく作成されたデフォルトの単純なMVC4Webプロジェクトを学習しています。
インデックスページには、ユーザーが自分のアカウントでサイトにログオンするためのリンクがあります。その後、彼は新しい名前、新しいパスワードを入力するためのフォームにリダイレクトされます。
このフォームを使用して検証する準備ができてい[Required]
ます。しかし、リダイレクトされたページが完全に読み込まれるとすぐに、これらのコントロール(ユーザー名とパスワード)も検証されました(Field needs be filled in
)。
ユーザーが自分のアカウントでログインした後のPOSTのコードは次のとおりです
if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe))
{
return RedirectToCreateUser(returnUrl);
}
// If we got this far, something failed, redisplay form
ModelState.AddModelError("", "The user name or password provided is incorrect.");
return View(model);
これがRedirectToCreateUserメソッドです
private ActionResult RedirectToCreateUser(string url)
{
if (Url.IsLocalUrl(url))
{
return Redirect(url);
}
else
{
return RedirectToAction("CreateNewUser", "Account");
}
}
最後に、httpGET用のCreateNewUserメソッド
public ActionResult CreateNewUser(CreateNewUserModel model)
{
return View(model);
}
もう1つはまだアクセスされていないと思うhttpPOST用です。
[HttpPost]
public ActionResult CreateNewUser(CreateNewUserModel model, string url)
{
if (ModelState.IsValid)
{
// Attempt to register the user
try
{
WebSecurity.CreateUserAndAccount(model.UserName, model.Password, null, true);
WebSecurity.Login(model.UserName, model.Password);
return RedirectToAction("CreateUserSuccess", "Account");
}
catch (MembershipCreateUserException e)
{
ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
}
}
else
{
}
return View(model);
}