在我的控制器中,我使用模型来正常登录这些工作,并且该模型为我提供了正确的数据当我登录帐户时,给我空对象引用
这些是我的模特
public class LoginViewModel
{
[Required]
//[Display(Name = "Email")]
public string UserName { get; set; }
[Required]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[Display(Name = "Remember me?")]
public bool RememberMe { get; set; }
}
以及我在这里的动作
public ApplicationSignInManager SignInManager {
get { return _signInManager ?? HttpContext.GetOwinContext().Get<ApplicationSignInManager>();
}
private set { _signInManager = value; }
}
public async Task<ActionResult> LoginUser(LoginViewModel model, string returnUrl)
{
if (!ModelState.IsValid)
{
return View(model);
}
var user = UserManager.FindByName(model.UserName);
var result = await SignInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, shouldLockout: false);
switch (result)
{
case SignInStatus.Success:
return RedirectToLocal(returnUrl);
case SignInStatus.LockedOut:
return View("Lockout");
case SignInStatus.Failure:
default:
ModelState.AddModelError("", "Invalid login attempt.");
return View(model);
}
}
var user = UserManager.FindByName(model.UserName);
然后,这意味着SignInManager
未在控制器中初始化。
var result = await SignInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, shouldLockout: false);
如果您共享SignInManager
的初始化代码,我们可以为您提供更多帮助。