【问题标题】:Using Identity Foundation with a WCF Web Api将 Identity Foundation 与 WCF Web API 结合使用
【发布时间】:2011-10-09 08:06:08
【问题描述】:

我有一堆设置相同的网站以使用 WIF 身份提供程序。我最近将业务逻辑从 Web 应用程序中移到了 Web Api 服务应用程序中。这在与其他站点不同的虚拟目录中运行。这个想法是浏览器会将数据放入页面 AJAXy。

我遇到的问题是保护 Web API。似乎 WIF 单点登录适用于传统网站。用户可以访问一个网站,被重定向到身份提供者,登录并被重定向回他们想要的网站。当他们访问另一个站点时,他们也会被重定向回身份提供者,但由于 FEDAUTH cookie 存在而无需登录,因此他们会自动获得身份验证并重定向到第二个站点。

这不适用于 Web Api 场景,因为当浏览器可能向它发出 GET 请求时,Api 会在它应该期待 JSON 时返回一个重定向到调用 javascript。

甚至可以使用 WIF 保护 Web Api 吗?

【问题讨论】:

    标签: asp.net ajax wcf identity wif


    【解决方案1】:

    不确定我是否正确,但主要问题似乎是 javascript/ajax 不支持 http 重定向。 一种可能的解决方案是使用 ajax 中的一系列单独调用来模拟重定向:

    1. 检查您是否在 Web api 站点上通过了身份验证(通过虚拟 ajax 调用)。

    如果不是这样:

    1. 通过 ajax 调用您的 sts 并从“wresult”表单字段中获取安全令牌。
    2. 在您的 web api 站点上调用登录站点并将安全令牌作为“wresult”数据传递。

    Dominick Bayer 写了几篇关于保障休息服务的博客文章。如需进一步阅读,请查看http://www.leastprivilege.com/。 (特别是http://leastprivilege.com/2009/09/11/adding-a-rest-endpoint-to-a-wif-token-service/http://leastprivilege.com/2010/05/05/thinktecture-identitymodel-wif-support-for-wcf-rest-services-and-odata/)。

    TechDays 的以下演示可能也很有趣:http://www.microsoft.com/showcase/sv/se/details/ffc61019-9756-4175-adf4-7bdbc6dee400(大约 30 分钟开始)。

    【讨论】:

      猜你喜欢
      • 2012-02-15
      • 2021-11-24
      • 1970-01-01
      • 2014-07-18
      • 2019-04-12
      • 2016-07-16
      • 2012-07-16
      • 2014-04-11
      • 2013-07-13
      相关资源
      最近更新 更多