在工作中,我们有一个部门维基(运行Mediawiki)。不幸的是几个 人员编辑而无需登录,这使得跟踪变得非常困难 向下编辑询问有关内容的问题。
有两种策略可以改善这个
对于这部分,欢迎任何提示。但当然总是存在风险 在rewarding behaviours。
我知道这必须保持低水平,否则会阻止任何编辑。 但是有点烦人的事情会很好。
[更新] 我知道有可能只是禁止匿名编辑,但这会给任何第一次贡献带来很高的障碍(特别是对于我们部门以外的人!),所以我认为这不是一个选择。 [/更新]
[UPDATE2] 使用LDAP或Active Directory无法解决问题,因为外部承包商也可以访问和使用Wiki。 [/ UPDATE2]
[UPDATE3] 我不再为这家公司工作了。这并不意味着我完全对这个问题失去了兴趣,但从我目前的兴趣点来看,最有价值的部分是“你忘了登录吗?”以下部分,我将根据问题的这一部分接受答案。 [/ UPDATE3]
一种想法是为匿名用户提供额外的确认步骤 - “你真的确定要匿名提交这个吗?”,尽管如此 这样的问题存在人们放弃或拒绝编辑的风险。然而, 如果这个问题以更外交的方式重新措辞为“你有没有忘记 登录?“我认为它会更容易接受。除此之外 还将捕捉作者确实忘记的那些情况 登录,但实际上想要他/她的贡献记入 他/她的用户。最后一点本身就是想要它的充分理由。
这可能吗?
另一个有点烦人的想法是添加额外的东西 在“保存页面”之后强制延迟显示“如果你已经记录了” 在你不必等待x秒“。选择一个正确的x很困难 因为如果它高到它将是一个障碍,如果它太低可能不是 有所作为。但后来我开始思考,从什么开始 零,然后为给定IP的每次匿名编辑添加一秒延迟 在给定的时间范围内的地址?那样就没有障碍了 开始使用维基,并在延迟变得越来越重要的时候 用户已经贡献了很多,所以我认为结果很多 更可能是编辑最终创建用户而不是 放弃。这假设IP地址是相当静态的,但这是非常的 通常是商业网络中的情况。
这可能吗?
答案 0 :(得分:17)
你可以在Mediawiki中Turn off Anonymous Editing这样:
编辑LocalSettings.php并添加以下设置:
$wgDisableAnonEdit = true;
编辑includes / SkinTemplate.php,找到$fname-edit
并将代码更改为这样(即,基本上将以下代码包装在wfProfileIn()
和wfProfileOut()
函数之间) :
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 ) {
匿名用户现在阻止了部分编辑。
答案 1 :(得分:4)
禁止匿名编辑,让人们使用他们的域登录(LDAP)登录。通常,阈值是注册新用户并编写用户名和密码等。
答案 2 :(得分:3)
我认为你应该禁止匿名编辑,禁止他们 - 毕竟这是一个内部维基。
另一方面,您必须尽可能简化登录过程。希望您可以将登录cookie配置为具有不错的长度(例如1个月),因此他们每个月只需登录一次。
答案 3 :(得分:3)
向人们的自我发挥作用,并添加类似此处的代表系统。只需为主页制作一个小部件,显示前5位用户所做的编辑次数。以正常(每月?)的间隔为前1或2位用户提供MVP奖励。
答案 4 :(得分:3)
嗯,我怀疑这个解决方案对hlovdal有价值,因为这个问题现在已经有两个月了,但也许其他人会发现它很有用:
此问题的最佳解决方案是启用自动登录。这需要两个步骤。首先,您需要为Web服务添加自动身份验证。现在,我们在内部应用程序服务器 * 上使用Apache和Debian usn-libapache2-authenntlm-perl软件包。 (我们的网络是Active Directory,显然,服务器在Debian Linux上运行。)其次,您需要一个MediaWiki扩展,使MediaWiki了解Web服务的身份验证。我已经在通过NTLM身份验证模块绑定到我们网络的Apache Web服务器上成功使用了the Automatic REMOTE_USER Authentication module,但我记得它需要对代码进行一些按摩以使其工作:
$username = $_SERVER['REMOTE_USER']
语句的两个实例替换为$username = getCanonicalName($_SERVER['REMOTE_USER'])
。关于这个解决方案的一个很好的事情是,没有人必须登录到维基;他们只是转到维基页面,他们以网络ID登录。
* 我们刚从使用mod_ntlm的Red Hat服务器切换到此。不幸的是,mod_ntlm在一段时间内没有更新,并且它一直开始偶尔失败。我之所以提到这一点,是因为我开始偶然发现当前MediaWiki配置的性能问题,可能需要进一步的代码按摩......
答案 5 :(得分:2)
如果用户远离屏幕或打喷嚏或挠头,请确保用户不会退出。你想要长期,持久的会话。登录后,请保持登录状态。
这就是我们公司内部使用的MediaWiki的问题 - 你登录,做东西,然后再回来,它会把你记录下来,但是不再登录的通知在用户屏幕上是如此微不足道从来不会注意到。
答案 6 :(得分:2)
如果这在内部网络中运行,您可以提取Active Directory信息,以便任何人都不必登录。这就是我在工作中的表现。也就是说,如果他们登录到他们的Windows机器,那么我的webapps可以获取他们的用户名并将其(或他们的用户ID)与他们的编辑相关联。
我不知道这是否很容易添加到MediaWiki中。
答案 7 :(得分:2)
我建议您查看wikipatterns.org - 一个关于维基社交方面的精彩网站
答案 8 :(得分:2)
明确使用某种形式的目录服务(LDAP)可能是一个好主意,因此您的用户始终可以完全识别。另一方面,维基是受其自身动态影响的,事实上有些维基是如此成功,因为他们可以进行匿名编辑,所以这是另一件要记住的事情。
除此之外,我个人试图为用户提供某种激励,让他们公开和可识别:这可以基于积分/得分系统,以便为所有贡献者提供统计数据。 wiki每天都有可能创造某种竞争。
同样,wiki默认情况下不会显示任何匿名提供的内容,而不会先对其进行审核,这将是用户公开贡献的另一个动机。
答案 9 :(得分:1)
SO的发布障碍极低。您可以允许人们在进行编辑时指定其名称。当他们准备好时,他们终于可以登录以避免必须一直输入他们的名字。
答案 10 :(得分:0)
你说这是部门情况。你不能在wiki中添加一个功能,它会根据IP地址对谁进行编辑进行有根据的猜测,并相应地对编辑进行注释吗?
答案 11 :(得分:0)
我绝对同意所有建议在开始“禁止”之前仔细研究匿名性对您的应用程序的影响的人。在很多情况下,人们更喜欢匿名编辑,因为他们不想被问到它,通过它来识别,或者遇到一些指出问题的问题。您需要非常确保这些因素不会促使用户更喜欢匿名编辑,并且坦率地说,您应该继续允许使用通用凭据登录进行匿名编辑,例如“anonymous_employee”或“anonymous_contractor”,以防有人想要指出一个问题,而不是被它识别出来。
重新思考......为匿名用户提供额外的确认步骤 - “你真的确定要匿名提交吗?”,这是一个好主意,但不要在某种程度上“重新表达”这表明不以自己的身份登录是错误的,即不要说“你忘记登录了吗?”我会这样注意:
“您的编辑将显示为IP编号 - 它可能会归因于'anonymous_employee'或'anonymous_contractor'或'anonymous_contributor',以保护您的隐私。您不会收到任何答复或回复的通知。如果您愿意将此贡献记入贷方,然后[立即登录]。“
这使得它绝对清楚将会发生什么,并不会迫使任何人以任何方式做到这一点,并且不会偏袒某些“奖励”的贡献。
您也可以通过LDAP / cookie强制登录,然后询问他们是否希望此编辑是匿名的。这是在某些博客平台上采用的方法。在内联网中,滥用的可能性基本上为零,所以你可能只会遇到某些人不想要“他们怎么知道”或“为什么他们提出这个问题”而不是数据本身的情况...... IBM在一些仔细研究中已经表明,匿名反馈比纠正群体思考和反馈更有用。管理盲目。