У меня есть клиент WSE 3, который потребляет WSE 3 веб-сервис + STS:Преобразовать WSE 3 клиента WCF клиента
var stsService = new SecurityTokenServiceClient("https://stsurl");
var securityToken = stsService.requestSecurityToken("login", "password");
var st = new SecurityContextToken(securityToken);
transferObject.RequestSoapContext.Security.Tokens.Add(st);
Так маркер безопасности просто добавляется в коллекцию лексемы, и что мы можем назвать Повсеместно службы TransferObject.
Но теперь мне нужно реализовать аналогичного клиента, используя WCF. Вот код, который я пришел, к которому, к сожалению, приводит к ошибке Validation:
var binding = new BasicHttpBinding(BasicHttpSecurityMode.Transport);
var client = new GeneratedClient(binding, new EndpointAddress("https://serviceurl"));
client.ClientCredentials.IssuedToken.LocalIssuerBinding = new BasicHttpBinding(BasicHttpSecurityMode.Transport);
client.ClientCredentials.IssuedToken.LocalIssuerAddress = new EndpointAddress("https://stsurl");
client.ClientCredentials.UserName.UserName = "login";
client.ClientCredentials.UserName.Password = "password";
client.ChannelFactory.ConfigureChannelFactory();
var channel = client.ChannelFactory.CreateChannel();
var requestWrap = new Services.SomeMethodRequest();
requestWrap.ListShipments = request;
var response = channel.SomeMethod(requestWrap);
Является ли это правильный способ потреблять аутентификации STS с помощью WCF?