Salesforce SOQL,从登录ID获取登录历史记录

时间:2019-08-14 15:10:11

标签: authentication salesforce apex soql

我有以下代码

Id loginId = Auth.SessionManagement.getCurrentSession().get('LoginHistoryId');
LoginHistory logHistory = [SELECT AuthenticationServiceId FROM LoginHistory WHERE Id=loginId];
System.assert(false, logHistory.AuthenticationServiceId);

基本上我想做的是获取登录时通过的身份验证服务的ID。但是我收到一条错误消息

  

意外的令牌“ loginHistory”

如果我尝试以下操作

LoginHistory loginHistory = [select AuthenticationServiceId from LoginHistory where Userid = :system.userInfo.getUserId() order by LoginTime desc limit 1];

有效。但是我不希望它基于LoginTime。

请告诉我我是否想念这里的东西。

1 个答案:

答案 0 :(得分:0)

您有管理人users permission assigned吗?

我能够毫无问题地查询该对象

关键部分是这个

  

特殊访问规则   除了一个例外,只有具有“管理用户”权限的用户才能访问该对象。唯一的例外是,在API版本37.0及更高版本中,所有用户都可以检索自己的登录历史记录