我想启用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相关问答推荐

ASP.NET 核心中的 Request.CreateResponse

如何使用 executeReader() 方法仅检索一个单元格的值

说服遗留应用程序 VB6 开发人员切换到 C#

无法让嵌套在 UpdatePanel 中的 WebControl 中的 ScriptManager.RegisterStartupScript 工作

您对 Windows Workflow Foundation 有何体验?

ASP.NET MVC4 异步控制器 - 为什么要使用?

ASP.NET vNext 与主机无关,这意味着什么?

反序列化客户端 AJAX JSON 日期

如何在新选项卡中打开 asp:HyperLink.NavigateUrl

ASP.NET Core 2.0 为同一端点结合了 Cookie 和承载授权

使用 jQuery 调用 ASP.NET PageMethod/WebMethod - 返回整个页面

用于呈现

Asp.Net Mvc - 如何在共享视图中有一个控制器

如何获取部署在 Azure 网站上的 ASP.NET 5 应用程序的错误详细信息?

GridView 按代码隐藏列

IIS 是否执行非法字符替换?如果是这样,如何阻止它?

在控制器 asp.net-core 中获取当前区域性

Sys.WebForms.PageRequestManagerServerErrorException:处理服务器上的请求时发生未知错误.

System.Web.Caching 还是 System.Runtime.Caching 更适合 .NET 4 Web 应用程序

Appdomain 回收究竟是什么