【问题标题】:Differentiating requests from client and other services区分来自客户端和其他服务的请求
【发布时间】:2011-09-28 06:16:24
【问题描述】:

我们有一个 3 层应用程序 - 基于 winform 的胖客户端、Windows 服务和 sql 中托管的几个 WCF 服务。一些 WCF 服务在客户端中提供特定于 UI 的功能,但也有一些服务正在运行以执行数据加载、处理、缓存等。因此,所有这些服务相互通信并为来自客户端的请求提供服务。

现在是实际问题: 有没有办法了解请求是来自客户端还是来自其他服务。假设我编写了一个消息检查器,我能否以某种方式解释请求是来自客户端(用户)还是来自其他服务。

我想要实现的目标 - 如果您需要,这将在另一个线程中。 stopping user requests to wcf services。但简而言之,我试图阻止用户访问服务,但服务应该继续运行并且可以被其他服务访问/从其他服务访问。

【问题讨论】:

  • 您认为这可能是一个大问题吗?用户真的想调用你不想让他们调用的服务吗?
  • 请查看问题中的链接以了解场景的解释。
  • 另一个问题是关于停止所有请求 - 不是所有来自“用户”的请求,而不是来自其他服务的请求。

标签: .net wcf wcf-extensions


【解决方案1】:

有没有办法理解一个 请求来自客户端或来自 另一项服务。假设我写一个 消息检查员,我能以某种方式 解释,如果请求即将到来 通过来自客户(用户)或来自 另一个服务。

这是认证和授权的任务。您的客户将在客户组中拥有帐户,您的服务将在服务组中拥有帐户。您可能还需要一些自定义的ServiceAuthorizationManager,它将检查是否允许客户端访问服务并将它们传递或抛出异常。

【讨论】:

  • 没有。这里的情况不同。与授权完全无关。有关该方案的一些说明,请参阅链接。希望它有所帮助。
  • 我读了那个链接,没关系。您想知道请求是来自服务还是客户端 - 您需要身份验证。您想拒绝客户端访问服务 - 您需要授权。随心所欲地调用它,但这就是你所需要的。您将使用内置的东西,或者您将为每个请求添加一些魔术字段,然后您将手动完成。或者,您将为客户端和服务提供单独的服务,如果需要,您只需停止主机以提供客户端服务。
  • 是的,这似乎有帮助。通过此查看如何在此处实现我需要的内容。谢谢。
猜你喜欢
  • 1970-01-01
  • 2018-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-18
  • 1970-01-01
相关资源
最近更新 更多