WebSecurity CreateUserAndAccount

本文关键字:CreateUserAndAccount WebSecurity | 更新日期: 2023-09-27 18:28:52

Im调用CreateUserAndAccount方法,在用户名和密码中给出String。但是我得到一个异常,说硬编码字符串为null。这怎么可能!?!我在这里错过了什么?

代码:WebSecurity.CreateUserAndAccount("Admin", "Admin", null, false);

SQLEXCEPTION:无法将值NULL插入表"servidb.dbo.User"的列"UserPwd"中;列不允许为null。INSERT失败。

我也将表的名称从UserProfile更改为User和Password列。可能是这里的错误??

谨致问候。

ps:我不知道还有什么代码要显示。如果需要更多信息,请询问。

编辑:事实上我做到了:

WebSecurity.InitializeDatabaseConnection("connectionString", "User", "UserId", "UserName", autoCreateTables: true);

然后我检查了DB,并使用该列创建了表User。我的实体代码是这个

[Table("User")]
public class User
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int UserId { get; set; }
    [Required]
    public string UserName { get; set; }
    [Required]
    public string UserPwd { get; set; }
}

WebSecurity CreateUserAndAccount

试试这个:

WebSecurity.CreateUserAndAccount("Admin", "Admin", new {UserPwd = ""}, false)

第三个参数表示一个匿名对象,您可以使用它来提供Required字段,以便SQL获得所需的所有非null值

这可能是因为您更改了这些列名,WebSecurity自己知道要使用哪些列,它实际上使用自己生成的表,除了您的用户名表。如果您正在使用Internet模板,它可能在InitializeSimplemembership.cs中。

WebSecurity.InitializeDatabaseConnection([here database username],
[here database password], [here YOUR talbe name containing user name column], 
[here user name column] , autoCreateTables: true);

因此,您只创建了一个具有UserName列的表,仅此而已,其余的由WebSecurity在新表中创建。

相关文章:
  • 没有找到相关文章