gpt4 book ai didi

WCF 作为 BLL(中间层)和安全技术

转载 作者:行者123 更新时间:2023-12-04 08:13:48 25 4
gpt4 key购买 nike

请耐心等待,我是 MVC 和 WCF 的新手。我已经有一组公开我的 BLL 的服务 (WCF),我正在尝试从我的 MVC.net Web 应用程序中使用这些服务,但我不确定如何在此处执行安全操作。

这些是我的应用要求:

  • 能够为 Web 应用程序上的每个用户使用不同的凭据使用 WCF 服务
  • 我的 BLL (WCF) 需要知道消费者调用它的是什么(目前我只有 MVC 应用程序,但我计划向其添加 iOS 和 Andriod 调用,因此稍后我将向 WCF 端点添加 REST 服务) 那里有任何设计模式吗? (或者我应该只使用 soap header 来包含来电显示?我应该使用某种来电 secret 之类的吗?)
  • 我需要 token 之类的安全机制,这样我就不必在每次调用服务方法 (WCF) 时都传递用户名和密码

到目前为止我有什么:

  • WCF 使用证书和自定义用户名验证器。
  • 我使用契约(Contract)接口(interface)而不是生成的代理手动编码代理:但我讨厌这样一个事实,即每次调用 WCF 服务时我都必须验证用户名和密码。我怎么能在这里使用代币呢?想知道在 soap header 上发送的给定 token 是否有效或尚未过期?我搜索了很多,但没有足够清晰的教程/代码/示例让我真正开始编写代码;(
  • 我正在尝试缓存 ChannelFactory,但我应该这样做吗?我的意思是,我需要为每个契约(Contract)的每个登录用户缓存一个 channel 工厂;(可以吗?我可以在这里做什么?

提前致谢!

最佳答案

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

这取决于。有几个注意事项。实例化 channel 工厂最多可能需要 70 毫秒。如果您重复执行此操作,如果您没有缓存 ChannelFactory 并在每次用户向您的 MVC 应用程序发出 http 请求导致 Controller 操作调用 Web 服务时实例化一个(或多个),您将看到明显的性能下降。这表明缓存 channelFactory 有利于提高速度。

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

您必须决定即时实例化 channel 工厂(并正确关闭/中止它们及其包含的 channel )的成本是否比增加托管 MVC 应用程序的应用程序池中的内存利用率高。

无论如何,我强烈建议您在部署到生产环境之前分析您的应用。

关于WCF 作为 BLL(中间层)和安全技术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13038646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com