Db2 验证rpgs的用户、密码和打开菜单
我的AS400(rpg400)应用程序中有一个登录模块。在这里,验证用户名和密码,只有在密码匹配的情况下,用户才能访问菜单屏幕,菜单屏幕中进一步包含rpg程序,以导航到后续模块 我现在想要实现的是,当用户被验证时,登录的用户名必须出现在每个屏幕上,或者更确切地说,出现在每个被调用的rpg屏幕上。(ie用户会话必须保持)请不要在管理属性上进行指导。这是从工作的低级别开始的 以下是关于用户的PF:Db2 验证rpgs的用户、密码和打开菜单,db2,ibm-midrange,rpgle,rpg,Db2,Ibm Midrange,Rpgle,Rpg,我的AS400(rpg400)应用程序中有一个登录模块。在这里,验证用户名和密码,只有在密码匹配的情况下,用户才能访问菜单屏幕,菜单屏幕中进一步包含rpg程序,以导航到后续模块 我现在想要实现的是,当用户被验证时,登录的用户名必须出现在每个屏幕上,或者更确切地说,出现在每个被调用的rpg屏幕上。(ie用户会话必须保持)请不要在管理属性上进行指导。这是从工作的低级别开始的 以下是关于用户的PF: USER PF A R USRREC
USER PF
A R USRREC
A USER 10A
A PWD 10A
A USRTYP 2A
A K USRTYP
键入用户类型。如何允许登录人员的变量可供所有PGM访问?5250显示与HTML不同。没有CSS可以用作标准模板。您需要专门设计每个显示器,使其看起来像您想要的那样。对于这个特定的问题,这意味着您将在每个要查看它的显示面板上放置一个用户ID字段 如果我设计这个,我可能会将用户ID作为参数传递给每个RPG程序,但是传递信息的方法有很多
- QTEMP中的数据区
- QTEMP中的数据库文件
- LDA
- QTEMP中的用户空间
- 环境变量(*JOB)
如果系统可以使用内置的IBM安全性,那么所有这些都可以避免。然后,您可以使用作为作业名称一部分的用户配置文件—请参阅,位置254-263,以在RPG程序中获得该配置文件。如果您可以使用IBM用户配置文件,就不必传递任何信息;每个程序都能够自己检索这些信息;我会把它放到一个服务程序中,这样就很容易重用了 听起来是在QTEMP中创建的或常规数据区域的理想用途
user
关键字
您是否真的需要将用户ID和密码存储在一个文件中,而该文件本身就不如操作系统那样安全?这打开了一系列您可能不需要触及的问题
您可以调用CL程序或过程,该程序或过程可以使用CHKPWD
命令输入其系统密码。监视错误,并在出现问题时将其注销。他们的密码是安全的(假设您使用的是SSL连接)
<>如果你强烈地认为你必须有一个单独的密码,考虑存储一个安全的单向散列的密码。当他们稍后输入密码时,计算他们输入的哈希值,并将其与存储的哈希值进行比较
如果您要求用户在登录后输入密码,那么可以安全地假设您正在尝试解决一些安全问题,因此以安全的方式帮助您这样做似乎是合理的。这是一个开始。+1了解更多信息,尤其是尝试使用IBM登录。身份验证是困难的,IBM会为您解决大部分问题。当然,事情被限制为10个字符,这不是很好,但是…@buck我正在处理rpg 400,因此在dat情况下使用pgm状态数据结构是困难的。如果我要使用数据区域,我应该如何继续。RPG400很容易支持程序状态数据结构@JamesA发布了使用数据区的参考链接,如果你想这样做的话。本地数据区很简单,并且为几代RPG程序员所理解。不利的一面是,每个应用程序都认为它和它单独使用LDA。当其他应用程序步进“你的”LDA时,会导致不想要的结果。如果您知道系统上没有其他应用程序使用LDA,那么LDA是解决上述问题的一个非常好的答案。您最好在QTEMP中使用外部数据区域。或者考虑使用环境变量。LDA不是最好的解决方案,如果没有其他原因,任何不知道您如何使用它的程序都可以使用它。如果我允许我的系统具有两种类型的登录功能,一种用于现有用户,另一种用于新用户注册n den登录。在这种情况下,我如何确保需要在该
CHKPWD
中指定哪个密码关键字。例如:CHKPWD PASSWORD(JOHNJONES)
在这里代替JOHNJONES如何动态分配var?这些新用户如何在不首先登录的情况下进入系统?通常,IBM i系统的设置是为了在允许登录之前必须请求用户配置文件,而IBM提供的配置文件被禁用,并且不允许默认的常规访问。安全哲学通常试图避免给一英寸,以免有人不知何故找到一个意想不到的方式利用到院子里。[如果愿意,请将其更改为cm&m;)]并构建冗余的安全层,以防其他层失败。但是密码应该得到最大的关注,即使是在一个简单的系统上,因为用户有时会在多个情况下使用密码,因此这里的折衷可能会解锁其他的门。当QPWDLVL系统值设置为允许更长的密码或传递短语(应该是这样)时会发生什么?当启用SSO且系统上没有人拥有密码时会发生什么情况?