Asp.net mvc 4 自定义SimpleMembership提供程序
我在mvc4应用程序中使用简单的成员资格提供程序,我可以看到为此生成的五个表。我可以看到用户名和密码存储在不同的表中。我想用一些自定义字段将用户名和密码保存在同一个表中。因此,我通过继承ExtendingMembershipProvider创建自己的成员资格提供程序。我对此有一些疑问Asp.net mvc 4 自定义SimpleMembership提供程序,asp.net-mvc-4,simplemembership,Asp.net Mvc 4,Simplemembership,我在mvc4应用程序中使用简单的成员资格提供程序,我可以看到为此生成的五个表。我可以看到用户名和密码存储在不同的表中。我想用一些自定义字段将用户名和密码保存在同一个表中。因此,我通过继承ExtendingMembershipProvider创建自己的成员资格提供程序。我对此有一些疑问 我的应用程序使用三层架构(BLL、DAL和表示层),并为account和admin创建了两个区域。所以在这里我不知道在哪里放置我的会员资格提供者,然后使用Authorize属性访问应用程序的每个部分 我正在重写这个
public override string CreateUserAndAccount(string userName, string password, bool requireConfirmation, IDictionary<string, object> values)
{
throw new NotImplementedException();
}
public重写字符串CreateUserAndAccount(字符串用户名、字符串密码、布尔要求确认、IDictionary值)
{
抛出新的NotImplementedException();
}
ExtendedMembershipProvider
注入BLL层。在DI配置中将其映射到Membership.Provider。这实际上是一个DAL,不应包含业务逻辑。最好还是围绕Web安全性创建一个外观,并将其注入BLL
对于#2:是,ExtendedMembershipProvider
接口使用键/值对字典,可以使用您选择的实现将用户配置文件属性映射到数据库架构
SimpleMembershipProvider
通过将字典键映射到相应的数据库列来实现这一点。创建记录后,您可以直接使用EF和UserProfile
模型管理用户数据
实现自己的ExtendedMembershipProvider
需要大量工作,我不推荐这样做。与旧式迭代相比,SimpleMembershipProvider
模式相对干净,我认为您需要一个很好的理由将密码列移动到用户表,而不仅仅是将SimpleMembershipProvider
配置为使用您自己的模式,并将密码保留在正确的位置