Salesforce中APEX的UserInfo会话类型

3
我想知道在APEX中是否有一种方法可以找出特定用户是直接登录还是通过组织的用户列表中的“Login As”功能登录的。UserInfo类似乎没有提供任何此类目的的方法,而我需要在我的apex代码中了解这一点。
谢谢。

你的情况是什么?你为什么需要知道这样的信息? - Pavel Slepiankou
我正在开发一个用于SFDC的第三方应用程序,该应用程序在当前用户的上下文中调用我们的Web服务。我想防止系统管理员(或任何被授权以其他身份登录的人)在以这种方式登录时调用我们的Web服务。这对我们的Web服务来说是一个安全问题。 - PeterB
系统管理员可能有合法的需求来尝试它,以便在用户请求时调试连接问题。 "登录为"条目记录在设置审计跟踪中,但我怀疑您是否可以访问它...向SF支持寻求帮助?也许您不应该存储凭据,而是强制用户每次对您的服务进行身份验证。 - eyescream
是的,我不怀疑管理员需要查看其他人的帐户,但他仍然不应该能够查看我们服务中的数据。我们已经联系了SFDC的支持团队,正在等待回复。 - PeterB
2个回答

1

有些东西正在跟踪您的会话,以便在Salesforce UI中显示“已登录为XYZ(foo@bar.com)”消息,表明您之前的会话属于另一个用户。

我怀疑这是基于cookie的。如果是这种情况,您可以尝试通过跟踪切换用户时的cookie更改来分离它。如果您能找到它,那么可以在Apex中检查是否存在此cookie。

Cookie counter = ApexPages.currentPage().getCookies().get('loginAsCookieHere');

谢谢,我会尝试一下。 - PeterB

0
据我所知,这在Salesforce中不可能。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接