帐户资料MVC .NET

时间:2011-11-30 03:45:33

标签: asp.net-mvc membership-provider asp.net-profiles

我一直在研究如何在.NET MVC中进行自定义profileprovider。 看起来很复杂。还有其他选择吗? 这是我的主要关注点,为什么人们会使用客户资料提供商?如果他们想要有关用户的额外信息,为什么他们不只是使用带有userId或userName作为外键的aspnet_Users与OneToOne关系创建另一个表?

请澄清。我正在尝试实现用户配置文件功能,但我不想走错路。

由于 DG

1 个答案:

答案 0 :(得分:1)

(不确定这是否有助于谈论自定义个人资料提供者......除非我被误解......)


IMO,无论你做什么.. 避免(烘焙)ASP.NET Membership 不惜一切代价!它太棒了,你会想用钝器把自己刺入眼睛:(

相信我。避免它。

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

那么......我们可以做些什么呢?

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

我也create my own custom IPrincipal and IIdentity因为我想在cookie中存储更多信息,当一个人经过身份验证后,Forms Auth会创建这些信息。这有助于使我的控制器中的代码更清洁,更简单。

例如,我将经过身份验证的人的userId存储在加密的cookie中。 (默认选项是仅存储Name)。我还存储了一两件东西..但你明白了。这样,我并不总是点击数据库来检索任何用户数据或在会话中存储此垃圾。

随着你自己的滚动,你可以创建额外的元数据(生日?妈妈的婚前姓名?社会安全号码(笑话))..并拥有额外的个人资料数据。同桌?额外的桌子?谁在乎...这是一个让以后让路的决定(并且易于解决)。让你的模型正确,IMO :)然后,一旦你锁定你的模型,你现在知道什么是必需的,什么是可选的..然后你可以做出一些数据库决策。

<强> TLDR吗

  1. 避免使用内置的ASP.NET Membership crap
  2. 自己滚动..并保持简单。
  3. 如果您感觉有进步感,请自行推出IPrincipalIIdentidy以真正撼动您的世界。
  4. GL HF,不要用钝的勺子刺入你的眼睛!

    enter image description here