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