在Oracle APEX中找出/检索Windows用户名的方法

时间:2014-02-03 08:26:43

标签: windows oracle oracle-apex

我想知道,如果有一种方法可以获得具有某种功能的Windows用户名,...在Oracle APEX 4.2中,在应用程序页面中填充Display Only元素。我不想进行登录身份验证,我只想获取用户名。

在Oracle数据库上,您可以执行类似

的操作
  SELECT SYS_CONTEXT('USERENV', 'OS_USER') "USERNAME"
  FROM dual;

得到它。 APEX有类似的方式吗?

1 个答案:

答案 0 :(得分:0)

ActiveX(仅限IE)

对于使用Internet Explorer的客户端,您可以通过ActiveX控件识别Windows用户名。允许ActiveX在用户浏览器上运行有安全要求,请参阅this related answer

要在Apex中实现此功能,您需要创建一个运行ActiveX&页面加载时的javascript以检索用户名并使用JS API

设置页面项值
var net = new ActiveXObject ( "WScript.NetWork" );
var username = net.UserName;
$s('P123_HIDDEN_USERNAME',username);

从Web服务器

您可以使用weblogic或mod_ntlm / mod_auth_kerberos在this post on the Oracle Forums中描述的应用程序服务器级别检索操作系统用户名。即使不使用身份验证,也可以在会话开始时将用户名检索到应用程序级别项目。

此解决方案非常复杂,但需要访问权限来配置托管Apex侦听器的应用程序服务器。