WCF服务接口与自定义认证配置详解
1. 服务设计关键原则
在开发WCF服务时,方法实现通常聚焦于业务逻辑。但有一个关键设计要点需理解:内部实现和数据结构应与外部数据契约结构分离。
例如,不应将 ResultData 、 ResultMessage 或 RequestMessage 用作业务类型,或直接用于数据库的检索与存储。这些类型属于公共契约,更改它们困难且有风险,任何改动都可能破坏消费应用程序。
若业务代码直接依赖这些类型,更改业务代码会变得困难,因为这将外部接口与内部实现绑定,违背了封装概念,而封装是面向对象和面向服务编程的强大工具。
在后续示例中,使用 ProjectTracker.Library 的业务对象类型作为内部实现,同时使用独立的数据契约类型定义服务的公共契约,以实现封装并保持应用程序和服务契约的可维护性。
需注意,使用CSLA .NET创建的业务对象不能直接作为服务契约的一部分暴露,因为WCF的序列化过程无法序列化CSLA风格的业务对象。使用CSLA .NET创建业务层时,必须在服务契约中暴露独立的数据契约类型。
2. 自定义认证概述
当业务对象使用自定义认证时,通常希望客户端向服务传递用户名和密码。服务可对这些凭据进行认证,并设置自定义主体对象供服务器代码使用。
WCF配置可能非常复杂,若使用Windows AD认证或ASP.NET MembershipProvider模型,情况会简单很多。但 ProjectTracker
WCF服务接口与自定义认证配置详解
超级会员免费看
订阅专栏 解锁全文
92

被折叠的 条评论
为什么被折叠?



