SimpleMembership - UserManager.FindAsync 在 MVC5 中不起作用

Ole*_* Sh -1 asp.net-mvc simplemembership asp.net-mvc-5

以下代码不起作用:

        if (ModelState.IsValid)
        {
            var user = await UserManager.FindAsync(model.UserName, model.Password);
            if (user != null)
            {
                await SignInAsync(user, model.RememberMe);
                return RedirectToLocal(returnUrl);
            }
            else
            {
                ModelState.AddModelError("", "Invalid username or password.");
            }
        }
Run Code Online (Sandbox Code Playgroud)

用户为空。模型有正确的值。

我将此代码更改为:

        if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe))
        {
            return RedirectToLocal(returnUrl);
        }

        // If we got this far, something failed, redisplay form
        ModelState.AddModelError("", "The user name or password provided is incorrect.");
        return View(model);
Run Code Online (Sandbox Code Playgroud)

它工作正常。为什么以及如何修复?

Ola*_*ybø 5

UserManager.FindAsync 是对 ASP.NET Identity 方法的方法调用。WebSecurity.Login 是一个 SimpleMembership 方法。ASP.NET Identity 与 SimpleMembership 不兼容。如果您将 Asp.net 身份与实体框架一起使用,它会期望您的数据库中的表与您在 SimpleMembership 中使用的表不同。

有关ASP.NET Identity 的更多信息,请参见http://www.asp.net/identity