tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:Login Historyでログイン履歴を参照する

f:id:tyoshikawa1106:20141109144213p:plain


ユーザのログイン履歴情報を参照したい場合は、『LoginHistory』オブジェクトで参照できます。アクセス元IPやログイン時刻、ブラウザ情報などが確認できます。

f:id:tyoshikawa1106:20141109143842p:plain


『LoginHistory』オブジェクトを参照するにはプロファイルのユーザの管理権限が必要になります。

f:id:tyoshikawa1106:20141109144457p:plain


この権限の無いユーザの場合、Visualforceページでレコード情報を表示できません。

f:id:tyoshikawa1106:20141109144701p:plain


Apexクラスはシステム権限で処理が実行されるのでレコード自体は取得できますが、Visualforceで表示する際に権限の有無が判定されレコードが非表示になっています。


Visualforceでオブジェクト情報の権限判定を行うにはsObject型になっている必要があります。なのでString型などただの文字列の場合は、権限判定が行われず画面に表示されるようになっています。


String型の変数『loginTime』に値をセットしてapex:outputTextで表示すれば『ユーザの管理』権限が無いユーザでもログイン履歴情報を表示することが可能です。

f:id:tyoshikawa1106:20141109145545p:plain

f:id:tyoshikawa1106:20141109145627p:plain


本来アクセス権の無い情報を強引に表示する方法なので、推奨される方法ではありませんが、画面上にログインユーザの最終ログイン日時を表示したい場合は、この方法で表示することが可能です。


LoginHistoryはシステム情報なので、テストクラスでテストデータを作成する必要はありません。組織内にある既存の情報にアクセスできるようになっています。

f:id:tyoshikawa1106:20141109150047p:plain


サンプルコードはこちらです。

ログイン履歴の参照ページ