我正在尝试使用Enitty Framework在ASP.NET MVC 3中实现自定义成员资格提供程序。对于用户数据,我创建了一个User类,它包含所有登录数据以及更多。 当我尝试实现MembershipProvider时,我需要实现一些在签名中具有MembershipUser参数的方法:
public override void UpdateUser(MembershipUser user)
我知道我可以让我的User类继承MembershipUser类,这不会有问题。但是当我试图让它继承时,我无法设置readonly属性的值,比如Email和其他。
这些方法有没有办法接受User类型的对象?或者也许还有其他更好的方法吗?
答案 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的好文章,但相似之处很多。
希望有所帮助。