2

我使用 WCF 频道和组织服务为 ms Dynamics 2011 开发了一个客户端软件。创建频道后,我将其放入字典Dictionary<string, OrganizationServiceProxy>中,等待 8 小时后,安全令牌不再有效。现在我调用serviceProxy.Authenticate()方法(serviceProxy 是从我的集合中检索到的对象)并且没有任何反应。我的令牌尚未更新,我无法使用我的频道从动态中检索数据。正如我在 msdn 中读到的,Authenticate()方法应该给我一个新的令牌,我做错了什么?

4

1 回答 1

3

您是否尝试过像性能最佳实践中描述的那样监控令牌?

此外,监视您的 WCF 安全令牌 (Token) 并在它过期之前刷新它,这样您就不会丢失令牌并且必须重新开始身份验证。要检查令牌,请创建一个继承自 OrganizationServiceProxy 或 DiscoveryServiceProxy 类并实现检查令牌的业务逻辑的自定义类。或者将代理类包装在一个新类中。另一种技术是在每次调用 Web 服务之前显式检查令牌。可以在 Helper Code: ServerConnection Class 主题的 ManagedTokenDiscoveryServiceProxy、ManagedTokenOrganizationServiceProxy 和 AutoRefreshSecurityToken 类中找到演示这些技术的示例代码。

您将找到一个如何在此类中自动更新令牌的示例。

于 2012-09-05T18:25:52.840 回答