EF的自定义会员提供商

时间:2012-05-21 14:10:37

标签: asp.net-mvc entity-framework membership-provider

我正在尝试使用Enitty Framework在ASP.NET MVC 3中实现自定义成员资格提供程序。对于用户数据,我创建了一个User类,它包含所有登录数据以及更多。 当我尝试实现MembershipProvider时,我需要实现一些在签名中具有MembershipUser参数的方法:

public override void UpdateUser(MembershipUser user) 

我知道我可以让我的User类继承MembershipUser类,这不会有问题。但是当我试图让它继承时,我无法设置readonly属性的值,比如Email和其他。

这些方法有没有办法接受User类型的对象?或者也许还有其他更好的方法吗?

1 个答案:

答案 0 :(得分:0)

参考

http://msdn.microsoft.com/en-us/library/ms152065.aspx

Custom MembershipUser with only needed parameters

http://www.codeproject.com/Articles/165159/Custom-Membership-Providers

答案

您可以创建MembershipUser的实例并在构造函数上传递属性(只读或不传递),然后返回该MembershipUser实例。

MembershipUser class的文档有一个引号可以帮助我更好地理解这一点:

  

创建新的MembershipUser对象不会添加新成员资格   用户对象到成员资格数据存储。

如果添加自定义属性很重要,则需要您继承MembershipUser。

有关示例,请参阅:Custom MembershipUser with only needed parameters

最后一个参考链接显示了使用Linq-to-Sql而不是EF的custom membership provider的好文章,但相似之处很多。

希望有所帮助。