我一直在研究如何在 .NET MVC 中进行自定义配置文件提供程序。 看起来相当复杂。还有其他选择吗? 这是我最关心的问题,为什么人们要费心使用客户资料提供程序?如果他们想要有关用户的额外信息,为什么不创建另一个与 aspnet_Users 具有 OneToOne 关系的表,并以 userId 或 userName 作为外键?
请澄清。我正在尝试实现用户配置文件功能,但我不想走上错误的道路。
谢谢 总干事
(我不确定这是否有助于谈论自定义配置文件提供商..除非我被误解了......)
IMO,无论你做什么..避免(内置)ASP.NET 会员不惜一切代价!它的设计太过分了,你会想用钝勺子刺进自己的眼睛:(
相信我,避免它。
为什么:我应该为 ASP .NET MVC 应用程序使用内置成员资格提供程序吗?
那么..我们能做什么呢?
创建您自己的用户名/密码并利用内置的
Forms Authentication
非常简单。就我自己而言,我不喜欢在自己的数据库中存储任何密码.. 因此我更喜欢使用 Facebook、Twitter 或 OAuth 作为我的身份验证机制.. 这意味着我完成了一个简单的、基本的、自定义的用户类别。
我还创建自己的自定义 IPrincipal 和 IIdentity,因为我想在 cookie 中存储更多信息,Forms Auth 在人员经过身份验证后会创建该信息。这有助于保持控制器中的代码更干净、更简单。
例如,我将经过身份验证的人的 userId 存储在加密的 cookie 中。 (默认选项是仅存储
Name
)。我还存储了一两件以上的东西..但你明白了。这样,我并不总是需要访问数据库来检索任何用户数据或将这些垃圾存储在会话中。
使用自己的卷,您可以创建额外的元数据..并拥有额外的配置文件数据。同一张桌子?额外的桌子?谁在乎......这是一个稍后做出的决定(并且很容易解决)。让你的模型正确,IMO :) 然后一旦你锁定了你的模型,你现在知道什么是必需的,什么是可选的..然后你可以做出一些数据库决策。
IPrincipal
和 IIdentity
来真正震撼您的世界。