我想知道,如果有一种方法可以获得具有某种功能的Windows用户名,...在Oracle APEX 4.2中,在应用程序页面中填充 Display Only 元素 . 我不想进行登录验证,我只想获取用户名 .
Display Only
在Oracle数据库上,您可以执行类似的操作
SELECT SYS_CONTEXT('USERENV', 'OS_USER') "USERNAME" FROM dual;
为拿到它,为实现它 . APEX有类似的方式吗?
对于使用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中描述的应用程序服务器级别检索OS用户名 . 即使不使用身份验证,也可以在会话开始时将用户名检索到应用程序级别项目 .
但是,此解决方案非常复杂,需要访问权限才能配置托管Apex侦听器的应用程序服务器 .
1 回答
ActiveX(仅限IE)
对于使用Internet Explorer的客户端,您可以通过ActiveX控件识别Windows用户名 . 允许ActiveX在用户浏览器上运行有安全要求,请参阅this related answer .
要在Apex中实现此功能,您将创建一个动态操作,在页面加载时运行ActiveX和javascript以检索用户名并使用JS API设置页面项值
来自Web服务器
您可以使用weblogic或mod_ntlm / mod_auth_kerberos在this post on the Oracle Forums中描述的应用程序服务器级别检索OS用户名 . 即使不使用身份验证,也可以在会话开始时将用户名检索到应用程序级别项目 .
但是,此解决方案非常复杂,需要访问权限才能配置托管Apex侦听器的应用程序服务器 .