我在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服务调用?
答案 0 :(得分:0)
您应该使Web服务匿名并处理不同类型的身份验证(假设需要保护服务)。你不能“传递”FedAuth cookie,因为它存在于浏览器中。因此,除非您使用ajax从浏览器进行Web服务调用,否则您将无法执行此操作。您可以做的一件事是将原始ADFS SAML令牌传递给Web服务并对其进行验证,但这在asmx中不会是微不足道的。
<location path="WebService">
<authorization>
<allow users="*" />
</authorization>
</location>