11

问题

在工作中,我们有一个部门 wiki(运行Mediawiki)。不幸的是,有几个人在没有登录的情况下进行编辑,这使得很难找到编辑来询问有关内容的问题。

有两种策略可以改善这一点

  • 鼓励登录编辑
  • 不鼓励匿名编辑。

鼓励

对于这一部分,欢迎任何提示。但当然,奖励行为总是存在风险。

不鼓励

我知道这必须保持在低位,否则会阻碍任何编辑。但是有一些有点烦人的东西会很好。

[更新] 我知道可以禁止匿名编辑,但这会给任何第一次贡献(尤其是对于我们部门以外的人!)设置很高的障碍,所以我不认为这是一个选择。[/更新]

[update2] 使用 LDAP 或 Active Directory 并不能解决问题,因为外部承包商也可以访问和使用 wiki。[/更新2]

[update3] 我不再为这家公司工作。这并不意味着我对这个问题完全失去了兴趣,但从我目前的兴趣点来看,最有价值的部分是“你忘记登录了吗?” 下面的部分,我将接受基于这部分问题的答案。[/更新3]

确认

一个想法是为匿名用户增加一个确认步骤——“你真的确定要匿名提交吗?”,尽管这样的问题存在人们放弃或拒绝编辑的风险。但是,如果该问题以更外交的方式重新表述为“您忘记登录了吗?” 我认为它看起来会更容易接受。除此之外,还将捕获作者确实忘记登录但实际上希望将他/她的贡献记入他/她的用户的那些情况。最后一点本身就是想要它的充分理由。

这可能吗?

延迟

另一个有点烦人的想法是在“保存页面”之后添加一个额外的强制延迟,显示类似“如果你已经登录,你将不必等待 x 秒”。选择一个正确的 x 是困难的,因为如果它太高,它将成为一个障碍,如果它太低,则可能没有任何区别。但后来我开始思考,如何从零开始,然后在给定时间范围内为给定 IP 地址的每个匿名编辑添加一秒延迟?这样一来,开始使用 wiki 就没有障碍了,当延迟变得很严重时,用户已经做出了很多贡献,所以我认为结果更有可能是编辑最终创建了一个用户,而不是放弃。这假设 IP 地址是相当静态的,

这可能吗?

4

12 回答 12

17

您可以像这样在 Mediawiki 中关闭匿名编辑:

  • 编辑 LocalSettings.php 并添加以下设置:

    $wgDisableAnonEdit = true;
    
  • 编辑includes/SkinTemplate.php,找到$fname-edit代码改成如下所示(即,基本上将下面的代码包裹在wfProfileIn()andwfProfileOut()函数之间):

    wfProfileIn( "$fname-edit" );
    global $wgDisableAnonEdit;
    if ( $wgUser->mId || !$wgDisableAnonEdit) {
    // Leave this as is
    }
    wfProfileOut( "$fname-edit" );

接下来,您可能想要禁用部分上的 [编辑] 链接。为此,请打开includes/Skin.php并搜索editsection. 你会看到类似的东西:

if (!$wgUser->getOption( 'editsection' ) ) {

将其更改为:

global $wgDisableAnonEdit;
if (!$wgUser->getOption( 'editsection' ) || !$wgDisableAnonEdit ) {

现在禁止匿名用户进行部分编辑。

于 2008-12-19T15:01:29.910 回答
4

禁止匿名编辑并让人们使用他们的域登录 (LDAP) 登录。通常阈值是新用户的注册以及用户名和密码等。

于 2008-12-19T15:05:03.537 回答
3

好吧,我怀疑这个解决方案对 hlovdal 是否有价值,因为这个问题现在已经两个月了,但也许其他人会发现它有用:

此问题的最佳解决方案是启用自动登录。这需要两个步骤。首先,您需要将自动身份验证添加到您的 Web 服务。现在,我们在内部应用服务器*上使用 Apache 和 Debian usn-libapache2-authenntlm-perl 包。(我们的网络是 Active Directory,很明显,服务器运行在 Debian Linux 上。)其次,您需要一个 MediaWiki 扩展,让 MediaWiki 了解 Web 服务的身份验证。我已经在通过 NTLM 身份验证模块连接到我们网络的 Apache Web 服务器上成功使用了 Automatic REMOTE_USER 身份验证模块,但我确实记得它需要对代码进行一些按摩才能使其工作:

  • 我不得不遵循扩展页面上给出的“可怕的黑客”,将 setPassword() 和 addUser() 函数更改为始终返回 true 而不是始终返回 false。
  • 由于 Active Directory 不区分大小写而 MediaWiki 不区分大小写,因此我将语句的两个实例都替换$username = $_SERVER['REMOTE_USER']$username = getCanonicalName($_SERVER['REMOTE_USER']).
  • 由于我只想允许公司内的某些人使用我们的 wiki,因此我将 autoCreate() 设置为始终返回 false。听起来您不需要担心这一点,因此您应该让 autoCreate() 始终返回 true,这意味着您公司网络上的任何人都可以访问 wiki。

这个解决方案的妙处在于,从来没有人需要登录 wiki。他们只需进入一个 wiki 页面,并使用他们的网络 ID 登录。

*我们刚刚从使用 mod_ntlm 的 Red Hat 服务器切换到此。不幸的是,mod_ntlm 已经有一段时间没有更新了,而且它已经开始偶尔出现故障。我提到这一点是因为我开始偶然发现我们当前 MediaWiki 配置的性能问题,可能需要进一步的代码按摩......

于 2009-02-19T01:35:09.380 回答
3

我认为你应该通过禁止匿名编辑来阻止匿名编辑——毕竟这是一个内部维基。

另一方面是您必须使登录过程尽可能简单。希望您可以将登录 cookie 配置为适当的长度(例如 1 个月),以便他们每月只需登录一次。

于 2008-12-19T15:01:46.820 回答
3

发挥人们的自尊心,并在此处添加类似的代表系统。只需为主页制作一个小部件,显示前 5 名用户的编辑次数或其他内容。定期(每月?)给予前 1 或 2 名用户 MVP 奖励。

于 2008-12-19T15:02:32.060 回答
2

如果它在内部网络中运行,您可以提取 Active Directory 信息,这样就无需任何人登录。这就是我在工作中的做法。也就是说,如果他们登录到他们的 Windows 机器,那么我的 webapps 可以获取他们的用户名并将其(或他们的用户 ID)与他们的编辑相关联。

不过,我不知道这是否容易添加到 MediaWiki。

于 2008-12-19T15:43:26.127 回答
2

Explicitly using some form of directory service (LDAP) would probably be a good idea, so that your users are always fully identified. On the other hand, wikis are subject to their own dynamics, in fact some wikis are so successful because they can be anonymously edited, so that's another thing to keep in mind.

Apart from that, personally I'd try to create some sort of incentive for users to contribute openly and identifiable: this could be based on a point/score system so that there are stats shown for all users who have contributed to the wiki each day, this could possibly even create some sort of competition.

Likewise, the wiki could by default not show any anonymously contributed contents without them being reviewed first, which would be another incentive for users to contribute openly.

于 2009-03-15T11:22:29.473 回答
2

我建议查看wikipatterns.org - 一个关于 wiki 社交方面的好网站

于 2009-02-19T01:46:13.443 回答
2

确保用户在将视线从屏幕上移开、打喷嚏或挠头时不会退出登录。您需要长时间的、持久的会话。登录后,保持登录状态。

这就是我们公司在内部使用的 MediaWiki 的问题——你登录,做一些事情,然后稍后再回来,它就会将你注销,但是不再登录的通知在屏幕上是如此微不足道,以至于用户永远不会注意到。

于 2008-12-19T15:04:09.373 回答
1

SO 的发帖门槛极低。您可以允许人们在进行编辑时指定他们的姓名。当他们准备好后,他们终于可以登录,以避免一直输入他们的名字。

于 2008-12-19T15:58:32.180 回答
0

你说这是部门情况。你不能在 wiki 中添加一个功能,让它根据 IP 地址对谁在编辑进行有根据的猜测,并相应地对编辑进行注释吗?

于 2008-12-19T15:02:04.853 回答
0

我绝对同意所有建议在您开始“禁止”匿名之前仔细研究匿名在您的应用程序中的影响的人。在很多情况下,人们更喜欢匿名编辑,因为他们不想被问到它,不想被它识别,或者因为指出它而遇到一些问题。您需要非常确定这些因素不会促使用户更喜欢匿名编辑,坦率地说,您应该继续允许使用通用凭证登录(如“anonymous_employee”或“anonymous_contractor”)进行匿名编辑,以防有人想指出一个没有变得认同它。

重新“考虑......为匿名用户提供额外的确认步骤 - “你真的确定要匿名提交吗?”,这是一个好主意,但不要以暗示它的方式“重新措辞”不以自己的身份登录是错误的,即不要说“您忘记登录了吗?”我会这样记:

“您的编辑将显示为一个 IP 号码 - 它可能归因于 'anonymous_employee' 或 'anonymous_contractor' 或 'anonymous_contributor' 以保护您的隐私。您将不会收到任何答复或回复的通知。如果您更愿意这样做捐款记入,然后[立即登录]。”

这使得将会发生什么变得绝对清楚,不会强迫任何人这样做,也不会偏向某些“奖励”的贡献。

或者,您也可以通过 LDAP / cookie 强制登录,然后询问他们是否希望此编辑是匿名的。这是在一些博客平台上采用的方法。在 Intranet 中,对此的滥用可能性基本上为零,因此您可能只会遇到有人不希望“他们如何知道”或“他们为什么提出这个问题”而不是数据本身的问题...... IBM在一些仔细的研究中表明,匿名反馈在纠正群体思维和管理盲点方面比归因于更有用。

于 2017-05-07T16:02:59.500 回答