UserManager继续抛出System.ArgumentNullException
我试图在AspNetUsers
从nvarchar
到int
的标准Id
。 我已经设法让那一方工作了。 但是我的问题是当我尝试登录时,我不断从UserManager
类中收到错误。
我的代码如下:
public class UserManager : UserManager { public UserManager(IUserStore store) : base(store) { }
在我登录的页面上
if (IsValid) { // Validate the user password var manager = Context.GetOwinContext().GetUserManager(); var user = manager.Find(UserName.Text, Password.Text); //This line throws the error if (user != null) { IdentityHelper.SignIn(manager, user, isPersistent: false); Response.Redirect("~/Home.aspx"); } else { FailureText.Text = "Invalid username or password."; ErrorMessage.Visible = true; } }
我一直得到的错误是System.ArgumentNullException:Value不能为null。 参数名称:manager 。 还有其他人遇到过这个问题吗? 在此先感谢您的帮助
堆栈跟踪
[ArgumentNullException: Value cannot be null. Parameter name: manager] Microsoft.AspNet.Identity.UserManagerExtensions.Find(UserManager`2 manager, String userName, String password) +221 Account_Login.LogIn(Object sender, EventArgs e) in Login.aspx.cs:17 System.Web.UI.WebControls.Button.OnClick(EventArgs e) +9628026 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +103 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35 System.Web.UI.d__14.MoveNext() +5226
确保UserManager
已在您的OWIN上下文中注册。 你应该在你的Startup
类中有这样的东西:
app.CreatePerOwinContext(ApplicationUserManager.Create);
还要确保将[assembly: OwinStartup(typeof(YourNamespace.Startup))]
属性应用于Web程序集。
manager.Find()方法只搜索表的主键,你必须使用类似的东西:
Context db = new Context(); if (db.Users.Select(u => u).Where(u => u.Username == Username && u.Pass == Password).ToList().Count() == 1) { // login }