Sam*_*ner 5 sql oracle oracle-apex
我有一个身份验证方案,当前仅验证用户是否在一个表中,即“雇主”表中。现在,我希望此身份验证方案可以验证用户是雇主还是雇员,并根据他们是雇主还是雇员,将其重定向到其他页面。
首先,如何在身份验证脚本中包含第二个表?我最大的问题是,当员工登录时,我需要第二个应用程序链接到第一个应用程序吗?还可以怎么做?目前,我只有雇主登录时的雇主论坛和页面。如果雇员登录,我将如何隐藏所有雇主报告/表格,仅让他们查看雇员表格/报告?
我当前的身份验证方案如下所示。
FUNCTION authenticate(p_username IN VARCHAR2
,p_password IN VARCHAR2) RETURN BOOLEAN IS
l_value NUMBER;
l_returnvalue BOOLEAN;
BEGIN
BEGIN
SELECT 1
INTO l_value
FROM employer
WHERE 1 = 1
AND upper(employer.username) = upper(p_username)
AND upper(employer.passwords) = upper(p_password);
EXCEPTION
WHEN no_data_found
OR too_many_rows THEN
l_value := 0;
WHEN OTHERS THEN
l_value := 0;
END;
l_returnvalue := l_value = 1;
RETURN l_returnvalue;
END;
Run Code Online (Sandbox Code Playgroud)
这是“授权方案”问题,而不是“身份验证方案”问题。
身份验证方案是您的应用程序的看门人。如果用户被允许进入,那么考虑他们是什么类型的用户。
您可以使用“授权方案”来执行此操作,根据您如何将他们识别为雇主或雇员来得出正确/错误。然后,您可以将这些授权方案关联到应用程序中的各种组件 - 页面、菜单项/链接、报告、按钮、.. 分支 - 您可以在应用程序的主页上定义这些组件。
例如:如果用户有授权方案x,则发送到页面2,否则发送到页面3。
但如果您希望扩展此概念,我建议为功能定义授权方案,然后通过自定义表将这些功能分配给业务角色。然后业务角色(员工、雇主)可以与特定的:APP_USER.
您的示例代码还建议您存储明文密码。不要那样做。甚至不举个例子。散列密码应该是默认设置 - Dimitri Gielis在这里有一个关于如何设置自定义身份验证的好示例。
和/或查看属性帮助中的示例:
| 归档时间: |
|
| 查看次数: |
52 次 |
| 最近记录: |