【发布时间】:2011-05-16 01:26:01
【问题描述】:
我使用 WCF 服务确保必须为每个请求提供用户名/密码。我需要使用来自许多客户端的相同服务,但我需要模拟调用以访问每个客户端的适当资源。当我直接从客户端调用服务时没有问题,因为我为每个客户端使用了他们的 web.config 中定义的一对用户名/密码。当我需要使用相同的身份从第一个调用中调用第二个 Web 服务时,问题就出现了。这第二个 Web 服务需要用户名/密码,但我只知道调用者(用户名)是谁而不知道密码。
如何在不知道相应用户名密码的情况下模拟第二次通话?
编辑:该应用程序(Web 应用程序和服务)在共享托管环境中运行,我无法使用 Windows 身份验证来配置 Kerberos 以进行委派。我已经定义了一个 UserNameValidator 来针对自定义 SQLServer 数据库在每次调用时处理 UserName/Password 对。此外,此应用的目标客户将通过 Internet 使用它,而不需要 Windows 帐户,这是因为我需要更灵活、基于 SQL 的身份验证架构。
【问题讨论】:
标签: asp.net wcf wcf-security impersonation delegation