将FedAuth cookie传递给Web服务调用

时间:2013-07-21 00:18:24

标签: asmx adfs ws-federation

我在Azure上运行的ASP.NET站点位于https:// [appname] .cloudapp.net。我还在https:// [appname] .cloudapp.net / WebService中的同一个实例中运行asmx Web服务作为子应用程序。

根网站受到被动ADFS身份验证的保护。由于Web服务从根应用程序的web.config继承设置,因此它也受到保护。

我的问题是,当我进行Web服务调用时,FedAuth cookie不会传递给Web服务,而且我总是收到STS登录页面作为来自Web服务的响应。

如何利用从登录到根应用程序检索到的FedAuth cookie来验证我的Web服务调用?

1 个答案:

答案 0 :(得分:0)

您应该使Web服务匿名并处理不同类型的身份验证(假设需要保护服务)。你不能“传递”FedAuth cookie,因为它存在于浏览器中。因此,除非您使用ajax从浏览器进行Web服务调用,否则您将无法执行此操作。您可以做的一件事是将原始ADFS SAML令牌传递给Web服务并对其进行验证,但这在asmx中不会是微不足道的。

<location path="WebService">
    <authorization>
        <allow users="*" />
    </authorization>
 </location>