我在这里尝试做两件事:
1.将电子邮件字段添加到(默认)UserProfile 表。奇迹般有效。用户可以注册用户名和电子邮件。
2.将登录更改为使用电子邮件而不是用户名,这也很有效。
这是问题所在。以上仅在我将它们分开时才有效,只要我同时使用它们,注册过程就会失败并显示以下错误消息:
Cannot insert the value NULL into column 'UserName', table 'opdb.dbo.UserProfile'; column does not allow nulls. INSERT fails.
WebSecurity.CreateUserAndAccount(model.UserName, model.Password, new { Email = model.Email
});
WebSecurity.Login(model.Email, model.Password);
我或多或少遵循 此处找到的指南, 在评论部分我看到其他人有同样的问题,但是,解决方案不是设置 UserName 字段以允许空值,如回复中所述。
奇怪的是,只要我不同时使用两者,一切都可以正常工作。有任何想法吗?这让我发疯!
提前致谢
编辑:可能是数据库中列的顺序吗?用于标识的字段必须是表中的第一列?那么,如果我想要电子邮件作为身份,需要成为表格中的第一列?