メインコンテンツまでスキップ
バージョン: 開発中

Validate password

Validate password ( userID ; password {; digest} ) : Boolean

引数説明
userIDInteger, TextユニークなユーザID
passwordText暗号化されていないパスワード
digestBooleanDigest password = True,
Plain-text password (default) = False
戻り値BooleanTrue = 有効なパスワード False = 無効なパスワード

このコマンドはスレッドセーフではないため、プリエンプティブなコードには使えません。

説明

Validate password コマンドは引数 password に渡された文字列が、引数 userID に渡されたID番号または名前を持つユーザアカウントのパスワードである場合、Trueを返します。

任意の digest 引数は、 password 引数に含まれるパスワードが標準テキストのパスワードかハッシュドパスワード(ダイジェストモード)かを指定します:

  • True を渡した場合、 password にはハッシュドパスワードが格納されていること(ダイジェストモード)を意味します。
  • False を渡すかこの引数を省略した場合、 password には標準テキストのパスワードが格納されていることを意味します。

この引数はデータベース認証メソッド、特に On REST Authentication データベースメソッド を使用しているときに有用です。

フラッディング ( ブルートフォース攻撃 ) 、言い換えれば複数のユーザ名とパスワードの組み合わせによる試みを防ぐために、コマンドは遅れて実行されます。その結果、このコマンドを4回呼び出す と、10秒間の遅延が発生します。この遅れは、ワークステーション全体を通して発生します。

例題 1

以下の例題を使用して、ユーザ “Hardy” のパスワードが “Laurel” であるかどうかを調べます。

 GET USER LIST(atUserName;alUserID)
 $vlElem:=Find in array(atUserName;"Hardy")
 If($vlElem>0)
    If(Validate password(alUserID{$vlElem};"Laurel"))
       ALERT("Yep!")
    Else
       ALERT("Too bad!")
    End if
 Else
    ALERT("Unknown user name")
 End if

例題 2

On REST Authentication データベースメソッド において、接続リクエストを(データベースの4Dユーザーを使用して)テストしたい場合:

 $0:=Validate password($1;$2;$3)

参照

GET USER PROPERTIES
Set user properties
WEB Validate digest