【发布时间】:2015-03-12 15:54:26
【问题描述】:
我有一个多层 asp.net mvc 应用程序,包含以下级别:
- 数据库(带有存储过程、视图和表)
- WCF 服务(包含业务逻辑和通过实体框架连接到数据库)
- Asp.net mvc 应用程序与 WCF 服务通信并生成 html
- 浏览器
最终用户在 asp.net mvc 层中使用 Identity 2.0 进行身份验证。
Web 服务器是 WCF 服务的唯一客户端。
对于这种情况是否有任何最佳实践?
Web 服务器和 WCF 服务可能在不同的位置运行,因此我们无法使用 Intranet 协议。
由于我们同时控制 Web 服务器和 WCF 服务,我们知道通信将是点对点的。这意味着我们可以使用传输安全性来避免消息安全性带来的额外开销。
据此,Improving Web Services Security: Scenarios and Implementation Guidance for WCF,互联网上的传输安全有两种选择:
- 使用 basicHttpBinding 进行基本身份验证
- 使用 wsHttpBinding 进行证书身份验证
哪一个最适合这种 WCF 服务基本上只有一个客户端的场景?
由于 http 的无状态特性,对 Web 服务器的每个新请求都会实例化一个新的服务代理。
有没有办法在调用 Web 服务器上缓存来自 WCF 服务的身份验证信息以提高性能?
【问题讨论】:
标签: asp.net-mvc wcf