【发布时间】:2011-05-07 12:21:25
【问题描述】:
我有一个 WCF 服务,它需要由单独的 WCF STS 服务颁发的安全令牌。这一切都只是花花公子。在我的应用程序中,我使用这样的服务:
MyServiceClient myService = new MyServiceClient();
myService.Open();
myService.DoStuff();
调用STS Service获取token,token用于调用服务方法DoStuff。
不过,一旦初始握手结束,myService 对象就会缓存令牌并重新使用它,直到它过期。这是很好的行为,但我将如何强制刷新令牌?
myService.ClientCredentials.Invalidate(); // something like this?
这样,如果我再次调用 DoStuff(),它就会知道它需要再次访问 STS,就像第一次一样。
我只是在创建一个新的代理类对象,即myService = new MyServiceClient(); 吗?这可行,但它似乎是核弹解决方案。
或者,有没有办法手动获取新令牌并替换当前令牌,即myService.ClientCredentials.Renew();?
如果我必须创建一个自定义 ClientCredentials 类来执行此操作,我将如何实现上述示例方法?
【问题讨论】:
标签: wcf credentials wif