首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WCF as BLL (中间层)和安全技术

WCF as BLL (中间层)和安全技术
EN

Stack Overflow用户
提问于 2012-10-23 20:23:59
回答 1查看 210关注 0票数 3

所以请原谅我,我是MVC和WCF的新手。我已经有了一组服务(WCF),它公开了我的BLL,我正在尝试从我的MVC.net web应用程序中使用这些服务,但是我不确定如何在这里执行安全操作。

这些是我的应用程序要求:

  • 能够对web应用程序中的每个用户使用不同的凭据来使用WCF服务。
  • 我的BLL ( WCF )需要知道消费者将它称为什么(现在我只拥有MVC应用程序,但我计划向它添加iOS和Andriod调用,所以稍后我将向WCF端点添加REST服务)是否存在这样的设计模式?(或者我应该只使用soap头来包含调用方ID吗?我应该使用某种呼叫者的秘密还是什么的?)
  • 我需要一个类似令牌之类的安全机制,这样我就不必在服务方法(WCF)的每个调用上传递用户名和密码。

到目前为止我所拥有的是:

  • WCF使用证书和自定义用户名验证器。
  • 我使用契约接口而不是生成的代理手动编写代理:但我讨厌每次调用WCF服务时都要验证用户名和密码。在天堂我怎么才能用代币呢?想知道在soap头上发送的给定令牌是有效的还是尚未过期的?我已经搜索了很多,没有一个教程/代码/示例足够清晰,我可以实际开始编写;
  • 我正在尝试缓存ChannelFactory,但我应该这样做吗?我的意思是,我将需要缓存每个登录用户每个合同的channer工厂;(这样可以吗?我在这里能做什么?

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-19 12:09:22

您应该为每个用户缓存每个合同的ChannelFactory吗?

那得看情况。有几个考虑因素。实例化通道工厂可能需要70 up。如果您重复这样做,您将看到一个显著的性能影响,如果您没有缓存ChannelFactory和实例化一个(或更多)每次用户向您的MVC应用程序提出http请求,从而导致控制器动作调用web服务。这意味着缓存channelFactory将有利于提高速度。

另一方面,根据您拥有的用户数量,如果您正在缓存大量的通道工厂(例如,在静态字典中),您将开始使用大量的内存--这可能会成为您的一个问题。

您必须决定动态实例化通道工厂(以及正确关闭/中止它们及其包含的通道)的成本是否太高,而不是在托管MVC应用程序的应用程序池中增加内存利用率。

无论哪种方式,我强烈建议您在部署到生产之前先分析一下您的应用程序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13038646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档