2012-08-09 10 views
0

我在我的AS400(rpg400)。這裏的用戶名和密碼的應用程序登錄模塊的開放式菜單中驗證,只有在密碼與用戶提供訪問其還包含菜單屏幕RPG程序導航到後續模塊。驗證用戶名,密碼和RPG遊戲

我現在想要達到的是,當用戶驗證時,登錄用戶名必須出現在每個屏幕或每個RPG屏幕上(即用戶會話必須維護)。請不要引導管理員屬性。這是來自低層次的工作。

下面是用戶PF:

 USER PF 


A   R USRREC     
A   USER   10A  
A   PWD   10A  
A   USRTYP   2A  
A   K USRTYP     

鍵安裝在用戶i type.How可以允許登錄的人的變量訪問到所有鉑族金屬?

+0

當QPWDLVL系統值設置爲允許更長的密碼或通行短語(應該是)時會發生什麼?啓用S​​SO時會發生什麼,系統上沒有任何人擁有密碼? – user2338816 2014-05-06 10:59:50

回答

7

5250顯示器不像HTML。沒有可用作標準模板的CSS。您需要專門設計每個顯示屏,以使其看起來像您所期望的那樣。對於這個特定的問題,這意味着你會在你想要看到的每個顯示面板上放置一個用戶ID字段。

如果我在設計這個,我可能會通過用戶ID作爲參數傳遞給每個RPG程序,但也有很多方法是傳遞信息。

  • 數據區在QTEMP
  • LDA
  • 在QTEMP
  • 用戶空間
  • 環境變量(* JOB)

QTEMP

  • 數據庫文件傳遞的用戶ID作爲參數有一個優點,就是永遠不會有需要清理的陳舊對象。如果一個人有兩個用戶ID(假設她在會計和應付賬款中工作),並且需要註銷並返回到該內部安全系統,則後續的CALL只需傳遞適當的參數。

    所有這一切都可以避免,如果系統可以使用內置的IBM安全。然後,您可以使用作業名稱一部分的用戶配置文件 - 請參閱Program Status Data Structure,位置254-263以在RPG程序中獲得該配置文件。如果您可以使用IBM用戶配置文件,則不必傳遞任何東西;每個程序將能夠自行檢索該信息;我把它放到一個服務程序中,所以很容易重用。

  • +0

    +1的額外的東西,特別是試圖使它使用IBM登錄。身份驗證是_hard_,IBM將爲您解決大部分這些問題。當然,東西只限於10個字符,這並不是很好,但... – 2012-08-09 20:22:27

    +0

    @buck以及我正在使用RPG 400,所以在dat使用pgm狀態數據的情況下struc很難。如果我要使用數據區我應該如何繼續。 – techie 2012-08-10 06:38:59

    +0

    程序狀態數據結構在RPG400中很容易支持。如果你想這樣做,@JamesA發佈了使用數據區域的參考鏈接。 – 2012-08-10 13:24:50

    1

    聽起來像是爲local data area理想的用途或在QTEMP創建的規則數據區。

    +0

    本地數據區很簡單,幾代RPG程序員都很好理解。不利的一面是每個應用程序都認爲它和它自己使用LDA。當其他應用程序在「您的」LDA上執行時,會導致不需要的結果。如果您知道系統上沒有其他應用程序使用LDA,那麼LDA對於所述問題是非常好的答案。 – 2012-08-09 21:26:40

    +0

    在QTEMP中使用外部數據區域會更好。或考慮使用環境變量。 LDA並不是最好的解決方案,如果沒有其他理由,可能會被任何不知道如何使用它的程序踩到。 – WarrenT 2012-08-12 05:37:39

    1

    如果您使用的是他們用來登錄到系統相同的用戶ID,那麼您可以在您的顯示文件使用USER關鍵字。

    你真的需要存儲的用戶ID和密碼的文件天生就比操作系統做它已經是這樣不太安全?這會打開一系列您可能不需要觸及的問題。

    你可以調用一個CL程序或程序,它可以使用CHKPWD命令輸入他們的系統密碼。監視錯誤,並在出現問題時將其簽名。他們的密碼是安全的(假設您正在使用SSL連接)。

    如果您非常強烈地感到您必須擁有單獨的密碼,請考慮存儲密碼的安全單向散列。當他們稍後輸入密碼時,計算他們輸入的哈希值並將其與存儲的哈希值進行比較。

    如果你問用戶輸入密碼後,他們已經登錄,則似乎可以假設你正在試圖解決一些安全問題[S],所以它似乎是合理的儘量幫你如願一種安全的方式。這是一個開始。

    +0

    Incase我允許我的系統擁有2種登錄功能 - 一種針對現有用戶,另一種針對新用戶註冊n登錄。在這種情況下,我怎樣才能確保哪個密碼關鍵字需要在'CHKPWD'中指定。 EG:'CHKPWD PASSWORD(JOHNJONES)'這裏取代johnjones如何動態分配var? – techie 2012-08-10 06:43:57

    +0

    這些新用戶如何在未登錄系統的情況下加入系統? – 2012-08-10 13:26:07

    +1

    通常,IBM i系統已設置爲必須在允許登錄之前請求用戶配置文件,禁用IBM提供的配置文件,並且不允許默認的常規訪問。安全哲學通常會盡量避免給出一個英寸,以免某人以某種方式找到一種無法預料的方式將其用於院子裏。 [如果您願意,可以將其更改爲cm&m;]]並在其他層失敗的情況下構建冗餘安全層。但是即使在一個微不足道的系統中,密碼也應該得到最大的關注,因爲用戶有時會在多種情況下使用它們,所以這裏的妥協可能會解鎖其他門。 – WarrenT 2012-08-10 13:30:59