2011-11-30 50 views
0

我一直在做关于如何进行自定义profileprovider在.NET MVC一些研究。 看起来很复杂。还有其他的选择吗? 这是我主要关心的问题,为什么人们会使用客户资料提供程序打扰他人?如果他们需要关于用户的额外信息,为什么他们不只是用userId或userName作为外键来制作另一个带有与aspnet_Users的OneToOne关系的表?帐户资料MVC .NET

请说明。我试图实现用户配置文件功能,但我不想走错路。

感谢 DG

+0

你不需要一个“自定义”配置文件提供者,除非你正在做一些复杂的业务逻辑或从不同的数据结构提取数据。如果你使用'aspnet_regsql.exe'工具,应该为你提供表格。然后,只需使用框架附带的[SqlProfileProvider](http://msdn.microsoft.com/en-us/library/system.web.profile.sqlprofileprovider.aspx)类。 –

+0

不,我不想做SqlProfileProvider。我会查询大量的数据 – Dhana

回答

1

(不知道这是否有助于谈自定义配置文件提供者。除非我误会了...)


IMO,什么都你这样做。 。避免(烤的)ASP.NET Membership不惜任何代价!它SOOOOO高于工程,你要捅你自己的眼睛用钝的勺:(

相信我避免

为什么:。Should I use the built-in membership provider for an ASP .NET MVC application?

所以..什么我们可以办呢?

这只是这么简单,滚你自己用户名/密码,并利用内置的Forms Authentication。至于我自己,我不是在自己的数据库中存储-any-密码的粉丝..所以我更喜欢使用Facebook,推特或OAuth作为my mechanism for authentication ..这意味着我完成了一个简单的,基本的,自定义的用户类。

我也create my own custom IPrincipal and IIdentity,因为我想存储在cookie中,形成当一个人已经被验证验证创建更多的信息。这样可以让我的代码更加清洁简单。

例如,我的认证的人的用户ID存储在一个加密的cookie。 (默认选项是只存储一个Name)。我还储存了一两件东西..但你明白了。这样,我并不总是有数据库来检索任何用户数据或存储在会话中的这个废话。

随着你自己的卷,你可以创建额外的元数据(生日?妈妈的娘家姓?社会安全号码(笑话))..并有额外配置文件数据。同一张桌子?额外的桌子?谁在乎......这是一个稍后决定(并且易于解决)的决定。让你的模型正确,海事组织:)然后,一旦你锁定了你的模型,你现在知道什么是必需的,什么是可选的。然后你可以做出一些数据库决策。

TLDR?

  1. 避免建在ASP.NET成员废话
  2. 推出自己的..并保持它的简单。
  3. 如果你感到先进,也推出自己IPrincipalIIdentidy真正摇滚你的世界。

GL HF并且不要用钝勺在自己的眼睛里刺自己!

enter image description here