У меня есть служба WCF, для которой требуется токен безопасности, выданный отдельной службой STF WCF.Это все работает просто денди.В моем приложении я использую службу следующим образом:
MyServiceClient myService = new MyServiceClient();
myService.Open();
myService.DoStuff();
Служба STS вызывается для получения токена, а токен используется для вызова метода службы DoStuff.
После инициализацииоднако рукопожатие закончено, объект myService
кэширует токен и использует его до истечения срока действия.Это нормальное поведение и все такое, но как бы я заставил обновить его токен?
myService.ClientCredentials.Invalidate(); // something like this?
Так, что если бы я снова вызвал DoStuff (), он бы знал, что нужно перейти кснова STS, как это было в первый раз.
Я застрял, просто делая новый объект прокси-класса, то есть myService = new MyServiceClient();
?Это работает, но похоже на решение ядерной бомбы.
Кроме того, есть ли способ просто вручную получить новый токен и заменить текущий, то есть myService.ClientCredentials.Renew();
?
Если у меня естьчтобы сделать собственный класс ClientCredentials для этого, как бы я реализовал приведенные выше примеры методов?