Возможно ли заставить WS-Security работать с файлом ASMX или ASMX слишком упрощен, и мне нужно перейти на WFC (что я действительно не хочу делать)?
Да, это возможно при использовании Расширения веб-служб 3 (дополнение для Visual Studio 2005 и ASMX). См. Эту страницу MSDN для учебника по WSE-3 и используйте утверждение usernameOverTransportSecurity
, отметив, что это , а не фактически безопасно, если соединение не происходит через защищенный транспорт (т.е. SSL).
Однако, не рекомендуется , чтобы вы делали это, и я не могу понять, почему вы не захотите "обновить до WCF", если у вас есть выбор. Обратите внимание на следующие очень важные ограничения ASMX / WSE:
WSE больше не поддерживается продуктом. Хотя он по-прежнему работает , он больше не получает обновлений или даже исправлений ошибок .
Ни одна версия WSE не будет успешно интегрирована в Visual Studio 2008 или даже Visual Studio 2005, работающую в Windows Vista x64 или более поздней версии.
WCF делает много хлопот, чтобы обеспечить потокобезопасные клиентские операции и позволяет прокси существовать в течение длительного периода времени (что, в свою очередь, обеспечивает значительные преимущества производительности для каждой операции). С другой стороны, WSE-прокси являются одноразовыми объектами, не поддерживающими потоки, которые требуют времени установки при каждом удаленном вызове метода (даже при использовании безопасного разговора). Это также делает их в значительной степени непригодными для внедрения зависимостей и многих других широко используемых шаблонов.
Это лишь некоторые из причин, по которым не следует больше использовать WSE. Причины, по которым следует использовать WCF на стороне клиента, разнообразны, включая, помимо прочего, разделение модели и прокси-серверов, использование служб на основе REST и лучшую обработку сбора. типы.
Если вы действительно не должны продолжать использовать ASMX, пожалуйста, пересмотрите ваш отказ перейти на WCF - если служба не делает много необычных вещей с сериализацией XML, потребуется не более 5 минут, чтобы переключатель.