用自己的属性扩展.net MembershipUser
本文关键字:net MembershipUser 扩展 属性 自己的 | 更新日期: 2023-09-27 17:54:02
我已经写了一个自定义的MembershipProvider
,除了一件小事,我想扩展MembershipUser
类一点。
默认值如下:
MembershipUser member = new MembershipUser(
providerName: Membership.Provider.Name,
name: db.userName,
providerUserKey: null,
email: db.userEmail,
passwordQuestion: "",
comment: "",
isApproved: true,
isLockedOut: false,
creationDate: db.creationDate,
lastLoginDate: db.lastLoginDate,
lastActivityDate: db.lastActivityDate,
lastPasswordChangedDate: DateTime.Now,
lastLockoutDate: DateTime.Now
);
但是我想把它扩展一下,像这样:
MembershipUser member = new MembershipUser(
providerName: Membership.Provider.Name,
name: db.userName,
guid: db.userGuid,
company: db.companyName,
companyGuid: db.companyGuid,
whatever: db.whatever,
providerUserKey: null,
email: db.userEmail,
passwordQuestion: "",
comment: "",
isApproved: true,
isLockedOut: false,
creationDate: db.creationDate,
lastLoginDate: db.lastLoginDate,
lastActivityDate: db.lastActivityDate,
lastPasswordChangedDate: DateTime.Now,
lastLockoutDate: DateTime.Now
);
是否有一种方法来扩展默认类?
当然!
创建一个类扩展MembershipUser
:
public class CustomUser : MembershipUser
{
// your custom properties/methods go here
}
在你的CustomMembershipProvider
中你可以返回你的CustomUser
对象。您只需要在客户端应用程序中强制转换为CustomUser
。像这样:
var myUserObject = Membership.GetUser() as CustomUser;
MembershipUser不是一个密封类,所以您可以创建一个从它继承的新类。保留现有的功能,只添加你需要的额外的东西。
如果您扩展它,您要么必须编写您自己的成员提供程序来返回您的新类,要么在每次调用到默认提供程序后从一个转换为另一个。
- 创建自己的提供商,继承
System.Web.Security.MembershipProvider
- 创建自己的会员信息,继承
System.Web.Security.MembershipUser
- 从
CreateUser()
,GetUser()
等返回类