3

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

public override void UpdateUser(MembershipUser user) 

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

这些方法有什么方法可以接受用户类型的对象吗?或者也许还有其他更好的方法来解决这个问题?

4

1 回答 1

0

参考

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

仅具有所需参数的自定义 MembershipUser

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

回答

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

MembershipUser 类的文档有一个引用帮助我更好地理解这一点:

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

如果添加自定义属性很重要,则需要您对 MembershipUser 进行子类化。

例如,请参阅:仅使用所需参数的自定义 MembershipUser

最后一个参考链接显示了一篇不错的文章,其中包含使用 Linq-to-Sql 而不是 EF 的自定义成员资格提供程序,但相似之处很多。

希望有帮助。

于 2012-12-13T02:47:53.270 回答