Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

ZAuthenticate

ZAUTHENTICATE ルーチンの簡単な例を以下に示します。


ZAUTHENTICATE(ServiceName,Namespace,Username,Password,Credentials,Properties) PUBLIC {
 #include %occErrors
 set $ZTrap="Error"
 set Name=$ZConvert(Username,"U")
 set Name=$piece(Username,"@",1)
 set UserRecord=$get(^MYUSERS(Name))
 if (UserRecord="")
 {
 quit $SYSTEM.Status.Error($$$UserDoesNotExist,Username)
 }
 if ($SYSTEM.Encryption.SHA1Hash(Password)'= $List(UserRecord,1)) 
 {
 quit $SYSTEM.Status.Error($$$UserInvalidPassword)
 }
 set Properties("FullName")=$piece(UserRecord,",",2)
 set Properties("Comment")=""
 set Properties("Roles")="%All"
 set Properties("NameSpace")=Namespace
 set Properties("Routine")=""
 set Properties("Password")=Password
 set Properties("Username")=Name
 quit $SYSTEM.Status.OK()
Error
 set $ZTrap=""
 quit $SYSTEM.Status.Error(5002 /*$$$ObjectScriptError*/,$ZError)
}
        

このコードは、以下のように動作します。

  • MYUSERS でユーザにより入力されたユーザ名を検索します。

  • 入力されたユーザ名が MYUSERS に含まれていた場合、このユーザの情報を取得し、続行します。含まれていなかった場合は、エラーを表示して終了します。

  • MYUSERS に保存されているパスワードの値と、ユーザにより入力されたパスワードを比較します。ただし、このパスワードは保存前にハッシュされています。値が一致した場合、ルーチンは続行します。不一致の場合は、エラーを表示して終了します。

  • 有効なユーザについて、そのユーザ情報を Properties 配列に保存します。InterSystems IRIS は、この配列から情報を取得します。この情報は管理ポータルで表示することができます。

詳細は、"ZAUTHENTICATE のシグニチャ" を参照してください。

FeedbackOpens in a new tab