GAMRepository Login メソッドが使用される例として、GAMExampleLogin オブジェクトを使用して説明します。
GAMRepository は、GAM ライブラリ (すべての GAM 外部オブジェクトが配置されているフォルダ) に属する外部オブジェクトです。
GAMRepository オブジェクトの Login メソッドには、次のパラメーターを渡します:
- UserName (GAMUserIdentification タイプ)
- Password (GAMDescriptionMedium タイプ)
- AdditionalParameters (GAMLoginAddittionalParameters タイプ)
- Errors (GAMError タイプ)
GAMLoginAdditionalParameters は GAM ライブラリにも含まれる外部オブジェクトであり、次のように定義されます:
[ AuthenticationTypeName ] プロパティを使用すると、ログインで使用する GAM 認証タイプの名前を指定できます (ただし、GAM ローカル認証タイプについては例外で、このプロパティを空にすることができます)。
Event 'login'
&AdditionalParameter.AuthenticationTypeName = !"Facebook"
&LoginOK = GAMRepository.Login(&UserName, &UserPassword, &AdditionalParameter, &Errors )
EndEvent
さらに、Properties コレクションを使用して、カスタムプロパティをログインに送信できます。「GAM を使用して追加パラメーターを外部認証プログラムに渡す方法」を参照してください。
また、GAMLoginAdditionalParameters には [ isBatch ] という名前のプロパティがあり、このプロパティにより、セッションを作成せずに (ログインせずに) ユーザー名およびユーザーパスワードをチェックできます。次のコードを参照してください:
&AdditionalParameter.AuthenticationTypeName = !"Custom"
&LoginAdditionalParameters.isBatch = TRUE
// ログインユーザー
&LoginOK = GAMRepository.Login(&UserName, &UserPassword, &AdditionalParameter, &Errors )
If not &LoginOK
// エラー処理
EndIf
スマート デバイス アプリケーションの場合の例として、GAMSDLogin オブジェクトを使用して説明します。
この場合、ローカルログインは Actions 外部オブジェクトと Login メソッドを使用して実行されます。
Event 'GXLogin'
Composite
GeneXus.Common.UI.Progress.ShowWithTitle("Connecting...")
GeneXus.SD.Actions.Login(&User, &Password)
GeneXus.Common.UI.Progress.Hide()
Return
EndComposite
EndEvent
Login メソッドはオーバーロードされるため、&LoginExternalAdditionalParameters という追加パラメーターを指定できます。
LoginExternalAdditionalParameters オブジェクトは次のとおりです:
例:
Event 'GXLogin'
Composite
GeneXus.Common.UI.Progress.ShowWithTitle("Connecting...")
&LoginExternalAdditionalParameters.Repository = !"1e89a9ca-bc52-482b-a344-c4cda4a9cc8f"
GeneXus.SD.Actions.Login(&User, &Password,&LoginExternalAdditionalParameters)
GeneXus.Common.UI.Progress.Hide()
Return
EndComposite
EndEvent
SD の Login メソッドの場合、LoginExternalAdditionalParameters を使用して、接続先のリポジトリの GUID を設定できます。これは、サーバー上の connection.gam ファイルに複数の GAM リポジトリ接続が定義されている場合に役立ちます。&LoginExternalAdditionalParameters パラメーターの [ Repository ] プロパティに値を渡すことによって、使用する接続 (connection.gam 内でこのリポジトリ GUID を参照する接続) を確立できます。
ローカル以外の任意の認証タイプを使用する場合は、LoginExternal メソッドを使用する必要があります。
認証タイプは、GAMAuthenticationTypes ドメインを使用して指定します。メソッドはオーバーロードされるため、同じ認証タイプが複数存在する場合は認証タイプの名前を指定することもできます。リポジトリ ID も指定できます。
&LoginExternalAdditionalParameters の指定はオプションです。
たとえば、GAM リモート認証タイプの場合、次のようにリポジトリで複数の認証タイプを扱う場合があることに留意してください:
Event 'GAMRemote'
Composite
&LoginExternalAdditionalParameters = new()
&LoginExternalAdditionalParameters.AuthenticationTypeName = !"my_custom_gam_remote_auth" //複数の GAM リモート認証タイプが存在する場合にのみ使用
GeneXus.SD.Actions.LoginExternal(GAMAuthenticationTypes.GAMRemote, &User, &Password, &LoginExternalAdditionalParameters)
Return
EndComposite
Endevent
|