我不知道我是否应该与MVC做任何不同的事情,但我很好奇,在使用会员资格提供者时,向ASP.NET用户帐户添加额外信息的建议方法是什么?还如何将此用法与其他实体相关联.
通常我并不打扰配置文件,并且更喜欢在简单引用USERID的表中添加额外的信息.这是ASP.NET MVC方法的好/坏/可接受,还是替代方法?
解决方法
这是一个很好的问题,我正在努力奋斗.我认为有三种基本方法;
>使用配置文件提供程序 – 这使得添加属性变得容易,但是生成用户表时很麻烦,尤其是在需要应用过滤器/搜索时. API只是不削减它.
>添加新表(或扩展现有表),然后加入此表.然后,您需要编写自己的方法来获取自定义数据.
>编写自己的会员资格提供者,扩展MembershipProvider类.
对于我最后一个项目,我使用后一种方法 – 我写了一个非常quck的sql提供程序,只实现了创建用户所需的基本要素,身份验证和更改密码.对于其余的虚拟方法,我只是抛出一个NotImplementedException.
然后我添加了一个新的类,添加了我需要的额外属性,并使之成为可以通过传递标准MembershipUser来实例化的.这样的事情
public static CustomMember GetMember(MembershipUser user) { // Get your custom member }
这样,您可以使用标准MembershipUser进行大多数事情,但如果您需要获取有关当前用户的更多详细信息,请执行以下操作:
MembershipUser user = Membership.GetUser(); CustomMember member = CustomMember.GetMember(user);
不过,我有兴趣看看其他人民的做法.