我正在尝试使用Enitty Framework在ASP.NET MVC 3中实现自定义成员资格提供程序。对于用户数据,我创建了一个User类,其中包含所有登录数据以及其他一些数据。
当我尝试实现MembershipProvider时,出现了一些我需要实现的方法,这些方法在签名中具有MembershipUser参数:
public override void UpdateUser(MembershipUser user)
我知道我可以让我的User类继承MembershipUser类,这不会有问题。但是,当我尝试使其继承时,我无法设置只读属性的值,例如Email和其他属性。
这些方法是否可以接受User类型的对象?或者,也许还有其他更好的方法呢?
最佳答案
参考文献
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,但相似之处很多。
希望能有所帮助。
关于asp.net-mvc - EF的自定义成员(member)资格提供者,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10686880/