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

  • Id
  • Name
  • Password
  • Email
  • IsDeleted

我已经将SimpleMembership API配置为使用我的数据库:

WebSecurity.InitializeDatabaseConnection("MyStuff", "Users", "Id", "Name", autoCreateTables: true);

我还可以插入一个用户:

WebSecurity.CreateUserAndAccount(model.UserName, model.Password, 
                                 new 
                                 { 
                                        IsDeleted = false, 
                                        Email = "sampledata@gmail.com"                
                                 });

但是,密码字段(或它的散列)并没有插入到USERS表中(当然),它插入到另一个名为webpages_Membership的表中,该表是用InitializeDatabaseConnection调用创建的,包含许多我不需要的不必要信息.

此外,我还有其他自动创建的表,称为webpages_OAuthMembership、webpages_Roles和webpages_UsersInRoles,我不需要它们.

我已经try 将表生成设置为false:

WebSecurity.InitializeDatabaseConnection("MyStuff", "Users", "Id", "Name", autoCreateTables: false);

但是在这种情况下,CreateUserAndAccount调用将抛出一个异常,因为它找不到webpages_成员表.

当我想使用SimpleMembership API时,似乎需要这些表.

我的问题是:在这样的场景中,当我只需要一张简单的Users桌而不需要其他东西时,我应该怎么做?

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

推荐答案

我向产品团队提出了同样的问题.

简单会员制的设计目标是尽可能简单地开箱即用.

因此,就表格而言,实际上不可能进行定制.

Asp.net相关问答推荐

域名 + 子域名在IIS部署

ASP.NET 核心中的 Request.CreateResponse

如何在asp.net中单击按钮的新选项卡中打开页面?

VS2012 中无法识别的标签前缀或设备过滤器asp

ASP MVC 授权除少数之外的所有操作

使 ASP.NET WCF 将字典转换为 JSON,省略键和值标签

为什么 ASP.NET Identity 2.0 使用 GUID/字符串作为用户 ID?

ASP.NET Membership:如何将用户设置为已登录

N' 在 SQL 脚本中代表什么? (插入脚本中字符之前使用的那个)

新的 ASP.NET MVC 5 应用程序如何知道如何创建数据库以及帐户控制器如何访问数据库?

HTTP 错误 401.3 - 未经授权

来自 IP 地址的经度和纬度值

存在 ios 7 虚拟键盘时,div 元素不会停留在底部

如何在 ASP.NET 站点中添加 favicon.ico

如何判断用户代理是 ipad 还是 iphone?

如何验证 WebClient 请求?

Fiddler 没有从 ASP.NET 网站嗅探 SOAP 流量

不同域的登录页面

在c#中显示带有换行符的标签文本

使用 NLog 在 ASP.NET Web API 2.1 中进行全局异常处理?