0
私は、彼らがログインしたときに自分のプロフィールページにユーザーを指示したいが、誰かが正しい方向に私を操縦することができればreturnUrl
はnull
で、私は、はるかに高く評価returnUrlはnullですか?
おかげかreturnUrl
作品について少し困惑している
ログインコントローラ:
#region LoginAction
[AllowAnonymous]
public ActionResult Login(string returnUrl)
{
ViewBag.returnUrl = returnUrl;
return View();
}
#endregion
#region LoginPost
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Login(LoginUserViewModel model,string returnUrl)
{
if (ModelState.IsValid)
{
User user = await UserManager.FindAsync(model.UserName, model.Password);
ProfileUserViewModel userProfile = new ProfileUserViewModel
{
UserName = user.UserName,
FirstName = user.FirstName,
LastName = user.LastName,
Weight = user.Weight,
Goal = user.Goal,
DailyCalories = user.DailyCalories,
DailyCarbs = user.DailyCarbs,
DailyFats = user.DailyFats,
DailyProtein = user.DailyProtein
};
if (user == null)
{
ModelState.AddModelError("", "Invalid name or password");
}
else
{
ClaimsIdentity ident = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie);
AuthManager.SignOut();
AuthManager.SignIn(new AuthenticationProperties { IsPersistent = false }, ident);
return Redirect(returnUrl);
}
// return View("Profile", userProfile);
}
ViewBag.returnUrl = returnUrl;
return View(model);
}
private IAuthenticationManager AuthManager
{
get { return HttpContext.GetOwinContext().Authentication; }
}
private AppUserManager UserManager
{
get
{
return HttpContext.GetOwinContext().GetUserManager<AppUserManager>();
}
}
#endregion
ビュー:
@model FitnessFriend.WebUI.Models.LoginUserViewModel
@{
ViewBag.Title = "Login";
}
<h2>Log In</h2>
@Html.ValidationSummary()
@using (Html.BeginForm())
{
@Html.AntiForgeryToken();
<input type="hidden" name="returnUrl" value="@ViewBag.returnUrl" />
<div class="form-group">
<label>Name</label>
@Html.TextBoxFor(x => x.UserName, new { @class = "form-control" })
</div>
<div class="form-group">
<label>Password</label>
@Html.PasswordFor(x => x.Password, new { @class = "form-control" })
</div>
<button class="btn btn-primary" type="submit">Log In</button>
}
私はBeginFormをオーバーロードし、それはログイン/ログインが存在しないと言うので、私は「ログイン」「アカウント」にそれを変更したが、同じ問題が再び起こります? –
コントローラとアクションの名前は何ですか? BeginFormメソッドの最初のパラメータはアクション名で、2番目のパラメータはコントローラ名です。 –
アカウントコントローラ、ActionResult:ログイン –