在MVC上,我添加了searchTypeCtrl.valueChanges.subscribe(value => {
value === 0 ? this.numberCtrl.setValidators([..conditional validators..]) :
this.numberCtrl.setValidators([..conditional validators..])
this.numberCtrl.updateValueAndValidity();
})
Admincontroller
,以检查它是否未重定向到[Authorize]
。
当您想要输入loginpage
时,它会重定向到Adminpage
。如果输入正确的信息如果输入错误,请将其发送到管理页面然后输入正确的密码重定向到{{1} }
我不知道问题是什么
控制器登录
Loginpage
查看登录
HomePage
的Web.Config
// GET: /Account/Login
[AllowAnonymous]
public ActionResult Login(string returnUrl)
{
ViewBag.ReturnUrl = returnUrl;
return View();
}
//
// POST: /Account/Login
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
if (!ModelState.IsValid)
{
return View(model);
}
// This doesn't count login failures towards account lockout
// To enable password failures to trigger account lockout, change to shouldLockout: true
var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
switch (result)
{
case SignInStatus.Success:
return RedirectToLocal(returnUrl);
case SignInStatus.LockedOut:
return View("Lockout");
case SignInStatus.RequiresVerification:
return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
case SignInStatus.Failure:
default:
ModelState.AddModelError("", "Invalid login attempt.");
return View(model);
}
}
//
管理控制器
@using (Html.BeginForm("Login", "Account", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{.....
答案 0 :(得分:0)
您不会存储重定向应该在哪里的信息。 让我解释一下。
ReturnUrl
变量指向管理员控制器。 身份验证过程
如果进程失败。您的新ReturnUrl
变量设置为null。这就是您在主页上重定向的原因。
如果流程成功,ReturnUrl
变量将不会重置,您将被重定向到管理页面。
对此的解决方案是以其他方式存储您的ReturnUrl
变量,或确保它与凭据一起传递。
一个简单的解决方案是编辑LoginController
而不是这段代码
if (!ModelState.IsValid)
{
return View(model);
}
...
switch (result)
{
...
case SignInStatus.Failure:
default:
ModelState.AddModelError("", "Invalid login attempt.");
return View(model);
}
使用此代码:
if (!ModelState.IsValid)
{
ViewBag.ReturnUrl = returnUrl;
return View(model);
}
...
switch (result)
{
...
case SignInStatus.Failure:
default:
ViewBag.ReturnUrl = returnUrl;
ModelState.AddModelError("", "Invalid login attempt.");
return View(model);
}
也更新了switch语句。