我有一个Web应用程序,它引用了部署在Windows服务上的wcf服务。 Web用户向WCF服务发送请求,然后该服务调用存储过程。 Web应用程序在Windows身份验证和模拟下运行。 WCF作为wshttp绑定运行。
这些都位于同一台机器上。我希望WCF服务模拟Web应用程序用户。这可能吗?有人可以指导我如何实现它吗?
感谢。
答案 0 :(得分:0)
是的,这是可能的。如果应用程序和服务在同一系统上运行,则存在一些小的限制,但您的方案不应受此影响。 来自How to: Impersonate a Client on a Service:
当客户端和服务在同一台计算机上运行时 客户端在系统帐户下运行(即本地系统或 网络服务),客户端安全时不能冒充 会话是使用有状态的安全上下文令牌建立的。一个 WinForms或控制台应用程序通常在当前运行 登录帐户,以便默认情况下可以模拟该帐户。 但是,当客户端是ASP.NET页面并且该页面托管在其中时 IIS 6.0或IIS 7.0,然后客户端确实在网络服务下运行 帐户默认情况下。所有支持的系统提供的绑定 安全会话默认使用无状态安全上下文令牌。 但是,如果客户端是ASP.NET页面和安全会话 使用有状态安全上下文令牌,客户端不能 模拟的。
如果您的服务作为Windows服务运行,则没有特定限制。