【问题标题】:Can a WCF hosted in windows service impersonate a domain windows caller from asp.net web application?托管在 Windows 服务中的 WCF 可以模拟来自 asp.net Web 应用程序的域 Windows 调用者吗?
【发布时间】:2011-11-11 11:22:20
【问题描述】:

我有一个 Web 应用程序,它引用了部署在 Windows 服务上的 wcf 服务。 Web 用户向 WCF 服务发送请求,然后调用存储过程。 Web 应用程序在 Windows 身份验证下运行,并勾选了模拟。 WCF 作为 wshttp 绑定运行。

这都位于同一台机器上。我希望 WCF 服务模拟 Web 应用程序用户。这可能吗?有人可以指导我如何实现它吗?

谢谢。

【问题讨论】:

    标签: asp.net wcf


    【解决方案1】:

    是的,这是可能的。如果应用程序和服务在同一个系统上运行,则存在一些小限制,但您的方案不应受此影响。 来自How to: Impersonate a Client on a Service

    当客户端和服务在同一台计算机上运行并且 客户端在系统帐户下运行(即本地系统或 网络服务),客户端在安全时不能被冒充 会话是使用有状态的安全上下文令牌建立的。一个 WinForms 或控制台应用程序通常运行在当前 登录帐户,以便默认模拟该帐户。 但是,当客户端是 ASP.NET 页面并且该页面托管在 IIS 6.0 或 IIS 7.0,则客户端确实在网络服务下运行 默认账户。支持的所有系统提供的绑定 默认情况下,安全会话使用无状态安全上下文令牌。 但是,如果客户端是 ASP.NET 页面并且使用安全会话 使用有状态的安全上下文令牌,客户端不能 冒充。

    如果您的服务作为 Windows 服务运行,则没有具体限制。

    【讨论】:

    • 有哪些次要限制?
    • 改进了答案以包含限制。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-05
    • 2011-07-13
    • 2016-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-30
    相关资源
    最近更新 更多