我想知道,如果有一种方法可以获得具有某种功能的Windows用户名,...在Oracle APEX 4.2中,在应用程序页面中填充Display Only
元素。我不想进行登录身份验证,我只想获取用户名。
在Oracle数据库上,您可以执行类似
的操作 SELECT SYS_CONTEXT('USERENV', 'OS_USER') "USERNAME"
FROM dual;
得到它。 APEX有类似的方式吗?
答案 0 :(得分:0)
对于使用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);
您可以使用weblogic或mod_ntlm / mod_auth_kerberos在this post on the Oracle Forums中描述的应用程序服务器级别检索操作系统用户名。即使不使用身份验证,也可以在会话开始时将用户名检索到应用程序级别项目。
此解决方案非常复杂,但需要访问权限来配置托管Apex侦听器的应用程序服务器。