Orm 扩展MembershipUser类

Orm 扩展MembershipUser类,orm,membership-provider,Orm,Membership Provider,我正在扩展MembershipUser和MembershipProvider类。我正在使用ORM 我想知道-MembershipUser类没有Password属性,但是有一些方法返回其密码并更改其密码等等。我最初认为,使用ORM方法,我们可以: user.password = newPassword; session.commit(); 但是,MembershipUser似乎不应该有任何密码属性或字段,而是必须通过SQL进行设置(因此必须创建查询) 让我的问题更清楚: 如果Membership

我正在扩展MembershipUser和MembershipProvider类。我正在使用ORM

我想知道-MembershipUser类没有Password属性,但是有一些方法返回其密码并更改其密码等等。我最初认为,使用ORM方法,我们可以:

user.password = newPassword;
session.commit();
但是,MembershipUser似乎不应该有任何密码属性或字段,而是必须通过SQL进行设置(因此必须创建查询)

让我的问题更清楚:

如果MembershipUser类有密码字段,我可以在MembershipProvider的updatePassword方法中执行以下操作:

User user = from database.getUser(username, oldpassword);
user.password = newPassword;
session.commit();
但是如果我没有密码字段,我必须使用SQL:


更新密码集。。等等等等。。。因为我无法从数据库中获取和更改对象,因为对象没有我需要更改的字段(如密码字段)。

如果您正在创建自己的MembershipUser类派生,您应该已经考虑创建自己的MembershipProvider


您的确切问题尚不清楚,但如果您实现自己的成员资格提供程序,您将需要(主要)实现它们“验证”和“获取用户”方法,该方法将允许您实例化和使用自定义MembershipUser实例。

我最终在MembershipUser周围创建了一个包装类,其中包含所有可以操作的虚拟字段。我创建了一个ToMembershipUser方法以满足MembershipProvider方法的要求。

是的,但在这些方法中,我无法像ORM方法那样从数据库中获取MembershipUser对象,因为MembershipUser没有密码属性。如果需要,可以添加密码属性,但应该重新考虑身份验证方法。通常,如果我需要一个需要实际密码的连接对象,我会在Validate方法期间或之后很快构造它,当我“手中”有密码时,将它放在应用程序其余部分可以访问的地方。