查找当前通过基本身份validation(Apache)进行身份validation的用户

当你通过一个基本的身份validation页面login时,你authentication的用户名是否存储在任何地方(在服务器或客户端机器上),也许在一个环境variables?

背景 :我有一个电子邮件服务器的公共Webpipe理页面,我想知道谁在做什么。 当用户通过基本身份validation成功login时,我不知何故希望能够识别他们并logging他们的行为。 所以每次提交请求时,我都可以写入日志文件。 基本格式是:

$username ran a $function against $useraccount 

所以如果用户改变了某人的权限,例如:

 Admin-Bob ran a permission change against User-Scott 

因此,如果发生错误,我可以轻松地追溯到日志文件中导致原因的操作。 我试图检查%ENV哈希无济于事,任何想法?

我真的不想进入类似PHP的会话,因为这意味着废除我的基本身份validation,这已经给我一个很好的控制程度。 如果我必须使用会话编写代码,我需要实现一个系统来阻止用户经过最大尝试等,我不想编码。 我认为这更适合serverfault,因为它比编程语言更适合于Apache。 会议可以用无数种语言完成。

用户名将在环境variablesREMOTE_USER可用。

这几乎适用于每种身份validation方法,您是否应该开始使用摘要或甚至Kerberos身份validation。

Shtééf已经提到了$ENV{'REMOTE_USER'} ,但是如果你使用的是CGI.pm,它也会被remote_user()函数返回。

 my $cgi = CGI->new(); print $cgi->remote_user(); # Prints user name 

它其实是一个服务器variables,而不是环境。

PHP_AUTH_USER和AUTH_USER应该都可以工作。