Работая с C #, ASP.NET, MVC, WCF, предположим, что у вас есть непубличный уровень службы бизнес-логики, а по соображениям безопасности и другим подобным причинам у вас есть слой шлюза или фасада, который публично предоставляет те же операции.
Таким образом, у вас есть два уровня с практически идентичными объектами передачи данных (запрос / ответ), за исключением того, что уровень открытых / открытых сервисов должен иметь дело с GUID, представляющим вызывающего пользователя, и уровень частных / внутренних сервисов должениметь дело с более богатым билетом аутентификации.Этот билет проверки подлинности не должен быть доступен общедоступному уровню.
PublicDto {
Guid userGuid;
string property1;
...
string propertyN;
}
PrivateDto {
AuthenticationTicket authTicket;
string property1;
...
string propertyN;
}
Существует ли эффективный способ получения базового класса или использования здесь интерфейсов таким образом, чтобы защитить частный AuthenticationTicket от общедоступного уровня, номинимизировать сокращение и вставку разграничительных свойств между частными и публичными DTO?