管理员帐户:何时,何时以及如何?

时间:2010-05-15 07:11:47

标签: php asp.net ruby-on-rails

在何处,何时以及如何为私人网站创建管理员帐户/用户?

所以我要问的是创建第一个管理员帐户/用户的首选技术是什么。就我而言,这是一个私人网络应用程序。我说的是将拥有该应用程序的帐户/用户,如果需要,将创建/推广其他管理员。我猜你这个人可以是root用户吗?

以下是我在其他网站/网络应用中遇到的一些方法。

安装向导:
你在博客软件或论坛中看到了很多。安装应用程序时,它会要求您创建管理员用户。私人网络应用很可能没有这个。

安装文件:
您运行以安装应用程序的文件。此文件将为您创建管理员帐户。

配置文件:
包含管理员帐户凭据的配置文件。

手动将其插入数据库:
手动将管理员信息插入数据库。

4 个答案:

答案 0 :(得分:3)

:当

在自举阶段。有人提出过seed.rb。我个人更喜欢使用bootstrapper gem(带有一些允许我解析csv文件的附加内容)。

此操作允许您创建可以像这样调用的rake任务:

rake db:bootstrap

这将创建初始管理员用户以及任何种子数据(例如国家/地区列表或默认博客格式等)。该脚本非常灵活。如果您愿意,可以让它要求输入密码或接受密码参数。

如何

在所有情况下,我都使用declarative_authorization来管理用户权限。

您的管理员用户必须在附加到其上的角色列表中返回名为“admin”(或您选择的任何名称)的角色。我通常每个用户只有一个角色,主要是因为我可以使用角色继承(例如,默认情况下,管理员也是编辑者)。这意味着在我的数据库中,我为用户提供了一个名为“role_id”的字段。 0通常用于admin角色,因为它是第一个创建的角色。

<强>其中:

db / bootstrap / users.rb(或yaml或csv)中的特定文件指定激活了admin角色的用户的详细信息。 rake db:boostrap订单会解析该文件并相应地创建用户。

答案 1 :(得分:1)

我看到你在轨道上标记了红宝石。在RoR中,您可能会使用/ your_app / db。下的seeds.rb文件。

如果您使用的是asp.net,我可能会假设您使用的是MSSQL或Oracle。使用作为安装脚本运行的存储过程可能会完成这项工作。

我见过使用install.php文件的php应用程序,在运行一次后,将必要的数据安装到数据库中,然后告诉安装程序在应用程序运行之前删除该文件。

所以有三种方法可以解决它。

答案 2 :(得分:1)

如果您的网站上有用户帐户(我看到您拥有这些帐户),则使用管理员凭据的配置文件非常笨拙。此解决方案强制您复制大部分身份验证逻辑。最好将帐户保存在数据库中。

我知道您正在为自己准备申请,而不是将其提供给您的客户。准备安装向导或安装文件似乎是浪费时间。

我会做最简单的 - 只是原始插入。优点:没有额外的工作,与其他用户相同的认证机制。如果您正在使用某种数据库迁移,则可以创建一个迁移,该迁移会创建一个root帐户,其中包含一些您可以在以后更改的虚拟密码。

答案 3 :(得分:1)

安装向导:   - 绝对是最好的方法。干净,确保和用户友好。应与应用程序安装程序集成。

安装文件:   - 好的,但前提是你只有一个脚本可以运行。有更多 - &gt;问题和潜在的安全漏洞(所有忘记在...后删除此文件的人)

配置文件:  避免。您要求用户了解PHP,应用程序的内部,可能是服务器端配置(任何高于ftp的东西都可能“很难”)

手动将其插入数据库:  为了避免* 2.

此外,如果您使用密码散列(即md5或sha1具有特定于站点的盐),则最后两个解决方案是不可能的 - 这在今天是非常有义务的。