首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于登录在Oracle APEX 5中分配第一页

基于登录在Oracle APEX 5中分配第一页
EN

Stack Overflow用户
提问于 2016-09-23 17:02:32
回答 4查看 4.1K关注 0票数 2

我目前正在构建一个招聘应用程序,以取代目前正在使用的应用程序。

我希望能够根据登录设置用户看到的第一页。我目前正在使用Application身份验证,但我也有一个登录表,其中包含office、用户名和用户类型,所以当用户名在:APP_USER中时。与登录表中的用户名匹配,它将提取用户类型。

因此,如果招聘人员登录,我希望他们进入第1页,即招聘仪表板,但如果销售人员登录,我希望他们进入第20页,这是一个销售仪表板。

我怎样才能做到这一点?

提前感谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-09-27 07:01:48

就我个人而言,我不喜欢改变登录机制。我当然不喜欢在用户真正通过身份验证之前根据用户名执行代码。@trent的例子并不完全是这样,因为它没有实际的选择,但我看到人们根据用户名执行选择,以检索一些默认值或设置,但只能调整p_app_page参数。

这些参数--不一定总是重定向到您想要的页面--除非您已经禁用了深度链接。启用深度链接后,用户将始终转到他所请求的页面,而不是p_app_page中提供的页面。应该由您来决定应用程序的行为方式。尊重深度链接还是总是重定向到某个页面?

就我个人而言,我更喜欢将重定向放在认证方案的后认证中。在我看来,获取或设置用户设置在登录页面进程中没有位置,在身份验证代码中也没有位置(它用于身份验证,而不是操作)。

在后期代码中,我会将select放在类型上并修改FSP_AFTER_LOGIN_URL。但请注意,这将完全忽略深度链接。您可以不使用ELSE,但这只会为非销售人员和招聘人员保留很深的链接,因为他们总是会登陆仪表板页面。

代码语言:javascript
运行
复制
DECLARE
  l_type persons.person_type%TYPE;
  l_url VARCHAR2(4000);
BEGIN
  SELECT person_type
    INTO l_type
    FROM persons
   WHERE username = :P101_USERNAME;

  l_url := 
  CASE l_type
  WHEN 'SALES' THEN
    'f?p=' || V('APP_ALIAS') || ':SALES_DASH:' || V('APP_SESSION')
  WHEN 'RECRUITER' THEN
    'f?p=' || V('APP_ALIAS') || ':RECRUITER_DASH:' || V('APP_SESSION')
  ELSE  -- go to home page
    'f?p=' || V('APP_ALIAS') || ':HOME:' || V('APP_SESSION')
  END;

  APEX_UTIL.SET_SESSION_STATE('FSP_AFTER_LOGIN_URL', l_url); 
END;
票数 5
EN

Stack Overflow用户

发布于 2016-09-27 00:47:53

几个方法。

如果已禁用深度链接(始终转到特定页面),则可以创建一个前置标头进程来应用重定向(urlurl)。

我看到的其他示例通常涉及清除会话项FSP_AFTER_LOGIN_URL,然后使用apex_custom_auth.login (在登录页面过程中),如下所示:

代码语言:javascript
运行
复制
declare
    l_to_page_num NUMBER;

begin

    if upper(:P101_USERNAME) = 'TRENT'
    then
        l_to_page_num := 2;
    else
        l_to_page_num := 1;
    end if;

    apex_util.set_session_State ('FSP_AFTER_LOGIN_URL', NULL);

    apex_custom_auth.login(
        p_uname => :P101_USERNAME,
        p_password => :P101_PASSWORD,
        p_app_page => :APP_ID || ':' || l_to_page_num);

end;

来源:https://community.oracle.com/message/10286176#10286176

票数 1
EN

Stack Overflow用户

发布于 2016-09-27 05:42:15

我个人喜欢在主页中使用加载的分支,这些分支可以在适当的情况下订购,并附带相关的授权方案或条件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39666047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档