WCF 服务 - ASP.net 托管 - 单点登录,如何传递凭据

Posted

技术标签:

【中文标题】WCF 服务 - ASP.net 托管 - 单点登录,如何传递凭据【英文标题】:WCF Service - ASP.net hosting - single sign on, how to pass credentials 【发布时间】:2010-01-07 10:43:22 【问题描述】:

我的情况是这样的 - 我有两个 ASP.net 网站。两个站点都在同一台机器上运行,我使用默认的 asp.net 成员提供程序(基于表单的身份验证)相对简单地实现了单点登录。

我在一个站点上有一个新的 WCF 服务,它将从另一个站点调用。用户将登录到该站点,但将在回发后从代码隐藏中调用服务。

谁能指出我正确的方向,以便我可以通过登录用户的基于表单的凭据传递到另一个站点上的 WCF 服务?目前它正在通过 NETWORKSERVICE windows 凭据。

【问题讨论】:

【参考方案1】:

查看 CodePlex 上的 WCF Security Guidance,最值得注意的是:

How To – Use Username Authentication with the SQL Server Membership Provider and Message Security in WCF from Windows Forms

它一步一步很好地显示了您需要在服务器上进行哪些配置,以使您的 WCF 服务使用消息安全性以及针对 ASP.NET 成员存储的用户身份验证。

还可以查看文章Fundamentals of WCF Security - 第 3 页显示了有关身份验证和授权的选项 - 也非常有用!

希望这会有所帮助!

【讨论】:

感谢您的链接,非常有趣。【参考方案2】:

听起来您正在使用 Impersonation,这将允许您将原始调用者的身份传递给第二个服务调用。

见CodePlex Link - Impersonation in WCF

【讨论】:

以上是关于WCF 服务 - ASP.net 托管 - 单点登录,如何传递凭据的主要内容,如果未能解决你的问题,请参考以下文章

尝试在 ASP.NET 网站中托管时出现 WCF 服务异常错误

从 ASP.NET 应用程序验证 WCF 服务

WCF 会话 ASP.NET 托管问题

强大的自托管服务器的最佳选择:WCF 与 ASP.NET Web Api

ASP.NET 中的 WCF 模拟异常

WCF IIS 服务器 500 错误 检测到在集成的托管管道模式下不适用的ASP.NET设置的解决方法(转)