首页 文章

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

提问于
浏览
0

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

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

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

为拿到它,为实现它 . APEX有类似的方式吗?

1 回答

  • 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中描述的应用程序服务器级别检索OS用户名 . 即使不使用身份验证,也可以在会话开始时将用户名检索到应用程序级别项目 .

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

相关问题