我想启用ASP.NET MVC 4的SimpleMembership API与我自己的数据库架构集成。我的数据库中有一个名为Users的简单表,其中包含以下字段:

  • ID
  • 名称
  • 密码
  • 电子邮件
  • IsDeleted

  • 我已经配置了SimpleMembership API以使用我的数据库:
    WebSecurity.InitializeDatabaseConnection("MyStuff", "Users", "Id", "Name", autoCreateTables: true);
    

    我也可以插入用户:
    WebSecurity.CreateUserAndAccount(model.UserName, model.Password,
                                     new
                                     {
                                            IsDeleted = false,
                                            Email = "sampledata@gmail.com"
                                     });
    

    但是,“密码”字段(或它的哈希)没有插入到“用户”表中(当然),而是插入了另一个名为webpages_Membership的表中,该表是通过InitializeDatabaseConnection调用创建的,并且包含许多我不需要的不必要的信息。

    另外,我还有其他不需要的自动创建的表,分别称为webpages_OAuthMembership,webpages_Roles和webpages_UsersInRoles。

    我已经尝试将表生成设置为false:
    WebSecurity.InitializeDatabaseConnection("MyStuff", "Users", "Id", "Name", autoCreateTables: false);
    

    但是在这种情况下,CreateUserAndAccount调用将引发异常,因为它将找不到webpages_Membership表。

    想要使用SimpleMembership API时,看起来需要这些表。

    我的问题是:当我只需要一个简单的Users表,而又只想要一个表时,在这种情况下该怎么办?

    我是否必须自己编写整个成员资格处理和身份验证逻辑(哈希代码生成等)?

    最佳答案

    我向产品团队问了同样的问题。

    SIMPLE成员资格的设计目标是尽可能地简化工作。

    因此,就表而言,确实没有自定义的可能。
    建议的解决方法是仍然使用ASP.NET成员资格(SqlMembershipProvider)。

    关于asp.net - ASP.NET MVC 4中具有自定义数据库架构的SimpleMembership,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12360126/

    10-11 23:00