我有一个 Microsoft Dynamics CRM 实施(2010 年或 2011 年不是 100% 肯定)。这个CRM系统需要从插件调用我们内部的服务框架服务。
为了调用服务框架,我们使用带有登录方法的 API,该方法进入 STS 并获取安全令牌。这是针对每个用户进行身份验证并获取用户声明的。登录调用返回一个 IPrincipal 对象,我们将其放在 Thread.CurrentPrincipal 属性上,从那时起,我们可以使用我们的框架调用服务,并且由于执行线程上的主体,用户在每次调用时都经过身份验证。
在 asp.net 网站中,我们通常将用户登录并立即去 STS 获取令牌,然后在会话中为用户缓存该令牌,因为登录不是我们每次想要调用服务时都想做的事情.
我将如何使用 CRM 插件来做到这一点。我是否有权访问每个用户的会话存储?我注意到 IServiceProvider 是作为参数传入的,我可以将服务添加到此容器并使用某种线程安全字典在服务中解决此问题吗?我对 CRM 开发知之甚少,我什至想知道插件是否是正确的方法?