2010-04-27 116 views
4

我想实现一个自定义成员资格提供程序,并且想要更改GetUser方法。问题是GetUser返回MembershipUser,我想返回MyMembershipUser,它有两个额外的属性FirstName和LastName。我可以在我的会员供应商中创建一个新的方法,返回MyMembershipUser,但是我认为它没有任何意义。实现自定义成员资格提供者成员资格用户问题

我该怎么做呢?

回答

4

这会破坏Membership类的目的。做这样的事情,如果你需要访问其他属性:

var user = Membership.GetUser(userName, true) as MyMembershipUser; 

真的,你应该有一个单独的Profile类来处理事情,MembershipUser不提供。

var profile = Profile.GetProfile(Membership.GetUser(userName, true)); 
+0

谢谢!好像我只能在4分钟内接受你的回答。我将等待! – 2010-04-27 19:41:58

+0

谢谢我将使用该场景的配置文件!你是谁! :D – 2010-04-27 19:44:33

+0

@john - 很高兴为您服务,祝您好运。 – ChaosPandion 2010-04-27 19:46:57

0

如果的MembershipUser是基类MyMembershipUser,那么你可以返回MyMembershipUser的情况下,即使的getUser()的返回类型的MembershipUser然后,如果必要的话,投他们回到MyMembershipUser(但你真的需要要做到这一点?)

顺便说一句,这是一个多态的例子。

2

你应该去配置文件提供程序。 检查这个link,你有SqlStoredProcedureProfileProvider和SqlTableProfileProvider,这样你就可以在数据库中存储配置文件数据“清晰”,让你随时查询数据库。

你可以实现你在存储过程中需要的任何业务逻辑来配置文件数据映射到自己的数据库架构和数据库逻辑。

相关问题