我想做的是,在umbraco中,我将手动创建一个用户配置文件。之后,用户可以更新此配置文件。这很简单,不是吗?但接下来是复杂的部分。每个用户都应该能够添加帖子,这将显示在他的页面上,也更新他的画廊。有人做过类似的事情吗?我打赌是的!最佳实践是什么?
谢谢。
PS:我使用Umbraco 7和Razor。
这里的关键问题是:你期望有多少用户?
如果我们谈论的是几百个,我建议只使用Umbraco的成员API,并添加额外的字段来满足配置文件需要的额外数据。这样,所有的会员数据都可以通过CMS会员区访问。
如果用户群将达到数千人,我会考虑"滚动你自己的"成员(例如使用和扩展。net的SimpleMembershipProvider
)。这样做的原因是,当你超过一定规模的用户群时,你必须考虑数据访问和数据库负载等,但也要考虑用户数据的管理。
从Umbraco加载成员记录需要调用API,而API又需要多次调用数据库(检索节点、属性和属性值等)。因此,当用户基数增加到一定程度时,拥有一个更加精简的架构将更好地为网站服务。想象一下,每天有100个用户登录并使用您的站点。对数据库的调用会很高,特别是如果你没有使用像Redis这样的缓存。
还要考虑运行关于用户的报告。在成员API上运行报告可能是一个相当昂贵的过程,但如果使用成员资格提供程序就不会这样。
最后,我会考虑安全性和数据管理。您可以将所有会员信息存储在一个单独的数据库中,包括帖子和媒体引用。这样,您的Umbraco安装将保持干净,但您的用户数据也将保持独立。
Posts and media
至于用户的帖子和媒体-再次强调,如果可以的话,避免将其存储在Umbraco中。就我个人而言,我试图将属于网站的内容与属于第三方(例如用户)的内容分开。
这是因为在CMS中存储用户的帖子和媒体会给CMS增加不必要的压力和膨胀,而收效甚微。还有一个安全问题。为了在CMS中存储用户生成的内容,您需要提供一个允许用户直接向CMS发布内容的表单。如果不小心,这可能会被用来向CMS发送垃圾邮件。最近与我一起工作的一个开发人员(违背建议)构建了一个面向公众的"评论"表单,该表单直接在CMS内容树中创建了评论节点。当然,不可避免的事情发生了,项目管理团队每天早上花了半天时间,费力地从CMS中删除了几十个垃圾邮件节点。
美妙之处在于,无论你选择哪种解决方案,Umbraco都足够灵活地处理它。例如,创建允许从单独的数据库中选择用户的数据类型是很容易的。
所以,有很多要考虑的!