У меня есть защищенный веб-сервис METRO 2.1, и я хочу разработать клиент .NET (3.5), который сможет его использовать.Я уже преуспел, если WS не был защищен, но как только я получил
Механизм безопасности Username Authentication with Symmetric Key
и он использует Development Defaults
Как настроить безопасность в .NET?Я читал руководство METRO, но я нашел только неработающие ссылки на примеры, и руководства не помогли мне.Я успешно сгенерировал прокси-класс с svcutil
, но не знаю, как его использовать.
svcutil предупреждений:
Предупреждение 1 Предупреждение о пользовательском инструменте: политика безопасности былаимпортируется для конечной точки.Политика безопасности содержит требования, которые не могут быть представлены в конфигурации Windows Communication Foundation.Найдите комментарий о параметрах SecurityBindingElement, которые требуются в созданном файле конфигурации.Создайте правильный элемент привязки с кодом.Конфигурация привязки, которая находится в файле конфигурации, небезопасна.
Предупреждение 2 Предупреждение пользовательского инструмента: элемент wsam: Addressing требует дочернего элемента wsp: Policy, но не имеет дочерних элементов.
РЕДАКТИРОВАТЬ
Я действительно близок к решению этого (я думаю).Я экспортировал сертификат GlassFish по умолчанию с keytool.exe
:
keytool -exportcert -alias xws-security-server -storepass changeit -keystore keystore.jks -file server.cer
keytool -printcert -file server.cer //This line shows it's content
Я использую server.cer
сертификат на стороне клиента:
KDTreeWSClient wsClient = new KDTreeWSClient();
X509Certificate2 server_cert = new X509Certificate2("FullPathToCertificate/server.cer", "changeit");
wsClient.ClientCredentials.ServiceCertificate.DefaultCertificate = server_cert;
wsClient.ClientCredentials.UserName.UserName = "wsitUser"; //Default GF username
wsClient.ClientCredentials.UserName.Password = "changeit"; //Default GF password
Вопрос Это приводит кMessageSecurityException
, поскольку ожидаемый DNS-идентификатор конечной точки равен localhost
, однако конечная точка имеет xwssecurityserver
.Могу ли я установить localhost
/ xwssecurityserver
вручную?
Буду признателен за любую помощь!Заранее спасибо, Даниэль