ASP.NET -> WCF 服务需要 Windows 身份验证

标签 asp.net wcf authentication authorization windows-authentication

我的任务是构建一个基本的管理应用程序。 该应用程序需要一个 ASP.NET 前端,该前端使用 WCF 与许多后端服务进行通信。

一项要求是应用程序的用户使用 Windows 身份验证进行身份验证。如果应用程序逻辑包含在 ASP.NET 应用程序中,我可以毫无问题地执行此操作,但我不知道如何在后端 WCF 服务中执行身份验证?

  • 是否可以将凭据传递给 WCF 服务并让它执行身份验证?

最佳答案

这取决于...(请注意,其中大部分基于 HTTP/IIS 作为传输,如果使用 TCP 或其他绑定(bind),可能会有所不同)

WCF 本身可以设置为使用当前运行的凭据来使用传输或消息安全性。

如果 WCF 服务(以及它需要使用当前凭据进行通信的任何内容)与 ASP>NET 前端位于同一个机器上,您可能会没问题

...否则您可能会遇到“Double Hop身份验证”麻烦。基本上,Windows 身份验证将在 Web 服务器上获得“模拟”身份,这在本地很好,但它没有从 Web 服务器进行身份验证的权限。为此,您需要一个“委托(delegate)”身份。

据我所知,用于获取委托(delegate)身份的选项是 Kerberos 和基本身份验证。

因此,如果您说“Windows 身份验证”时,您的真正意思是每个人(客户端和所有服务器)都位于同一个 AD 域中,那么您可能没问题。

关于ASP.NET -> WCF 服务需要 Windows 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/488676/

相关文章:

c# - Asp.Net (c#) - 读取 Excel 工作表

c# - 测试请求的 URL 是否在路由表中

javascript - 使用 Javascript 连接到 WCF Web 服务

linux - SSH 身份验证(无 PAM): how to know if user logged in by key or password?

c# - 在回发时保持页面位置

JavaScript 将参数传递给模态 ASP.NET Core

c# - 如何通过 MVC 网站在引用 DLL 中托管 WCF 服务?

c# - 为什么这个加密的消息损坏了?

security - 将 session 存储在加密的 cookie 中

java - 使用 Java 的 OpenDaylight Rest API