После обновления ServiceStack я заметил, что поставщик аутентификации ServiceStack, в частности Authenticate и AuthenticateResponse DTO, используют пространство имен по умолчанию:
Клиенты, которые использовали наши веб-службы в течение ряда лет, имеют следующее пространство имен:
Код: Выделить всё
http://schemas.datacontract.org/2004/07/ServiceStack
Есть ли способ заставить DTO использовать пространство имен, которое мне нужно?
Я попробовал несколько подходов, упомянутых в документации, таких как:
- Изменение пространства имен контракта с помощью сборки
- Установка свойства WsdlServiceNamespace в конфигурации
К сожалению, ни один из методов, похоже, не влияет на пространство имен, используемое в сгенерированных ответах WSDL или XML — по умолчанию оно по-прежнему равно:
Я бы предпочел не реализовывать специальную службу или атрибут аутентификации, поскольку наши клиенты полагаются на XmlServiceClient ServiceStack, который имеет встроенную поддержку аутентификации и может выйти из строя, если DTO или процесс аутентификации изменятся.
Вот как настраивается аутентификация. Службы защищены атрибутом Authenticate ServiceStack:
Код: Выделить всё
Plugins.Add(new AuthFeature(() => new AuthUserSession(),
new IAuthProvider[] {
new CustomCredentialsAuthProvider(),
})
{
IncludeAssignRoleServices = false
});
Будем очень признательны за любые рекомендации по переопределению пространства имен для этих встроенных DTO.
Подробнее здесь:
https://stackoverflow.com/questions/798 ... tos-in-ser