IIS 网络用户帐户可以调用在不同帐户下运行的 WCF 服务吗?

Posted

技术标签:

【中文标题】IIS 网络用户帐户可以调用在不同帐户下运行的 WCF 服务吗?【英文标题】:Can the IIS network-user account call a WCF service running under a different account? 【发布时间】:2009-08-17 23:30:51 【问题描述】:

我目前正在研究使用 WCF 在服务器和充当旧系统外观的程序之间进行通信。

快速概览:用户 ASP .NET 网页 WCF 外观程序 遗留系统

我不想以运行外观程序所需的权限运行 IIS,所以我正在考虑使用 WCF 在两个软件之间进行通信。

这可能吗?我是否应该使用 WCF 以外的东西在两个 .NET 项目之间进行通信?

【问题讨论】:

任何带有完整源代码示例的最终解决方案? 【参考方案1】:

我认为这种方法没有任何直接问题 - WCF 通常是 .NET 中进程间/机器间通信的最佳选择,因为它通过配置支持大量选项。

在认证 IIS -> WCF 服务方面,您可以从 WCF 客户端代理提供的默认 Windows 认证开始。 IIS 将使用网络服务凭据连接到 WCF 服务,该凭据应在同一台计算机上自动进行身份验证。

如果您在另一台计算机上托管 WCF 服务,则需要使用 DOMAIN\COMPUTERNAME$ 格式的计算机帐户名称将 IIS 计算机上的网络服务帐户映射到托管该服务的计算机。

或者,您可以在客户端代理上为特定域帐户初始化您自己的 NetworkCredentials 实例。这不太安全,因为您必须在代码中包含密码,但在实践中往往更容易使用。

WCF 服务宿主进程可以使用不同的进程标识运行,并使用该进程标识执行下游组件。

【讨论】:

【参考方案2】:

我会做一个套接字连接。前端监听一个端口,.NET 网页连接到它并交易数据......完全不用担心用户级别。

【讨论】:

你以前写过这种程序,并维护过吗?大多数人没有。对他们来说,WCF 将更容易开发和维护。【参考方案3】:

帐户根本不重要。

【讨论】:

如果它不是专用服务器,它会这样做。您不希望任何人在您的服务器上运行程序。也许他也有类似的情况。 如果是这样的话,那么他很可能应该这么说。他对安全只字未提。

以上是关于IIS 网络用户帐户可以调用在不同帐户下运行的 WCF 服务吗?的主要内容,如果未能解决你的问题,请参考以下文章

用户 ASP.NET 运行在

为 IIS 应用程序池帐户安装客户端证书

从 WCF 服务调用进程以在 WCF 服务帐户下运行

从不同帐户下的存储过程调用 SSIS 包

在服务帐户下运行 .NET Core 容器

在同一个 AD 用户帐户下运行的不同应用程序池 - 如何在任务管理器中区分?