0

Azure 的 ACS 服务非常好用,我喜欢它的所有魔力,但我希望我的 Web 应用程序 (MVC) 少一点魔力。如果您查看 CodePlex 上的代码示例,很容易调用该服务并从如下端点获取登录提供程序的 JSON 列表:

https://.accesscontrol.windows.net/v2/metadata/IdentityProviders.js?protocol=wsfederation&realm=http%3a%2f%2flocalhost%3a7070%2f&version=1.0&callback=?

从生成的 JSON 中,您可以呈现一些指向提供程序的链接,一旦您处理了这些登录,他们将通过 ACS 将您退回,并且 ACS 将使用生成的令牌发布到您在 Azure 中设置的任何端点门户网站。

我的问题是,我该如何处理该令牌?我不想使用创建集合 IPrincipal 的 WIF“魔法”,而不是什么。我只是不想弄乱我在应用程序中已有的内容。

4

2 回答 2

2

您将完全按照 WIF 对令牌所做的操作。您在解密 SAML 令牌后对其进行解析。您可以在此处查看 SAML 令牌的规范。我建议使用 WIF,因为解析 SAML 不适合胆小的人。您将需要解析所有声明,然后决定在您的应用程序中如何处理它们。WIF 通过创建 IClaimsPincipal 并在 IClaimsIdentity 上设置声明来做到这一点。

于 2011-06-09T01:12:54.453 回答
0

我写了一篇博客文章,为那些想要 WIF 的强大功能但又不想将他们的整个应用程序转换为基于声明的人描述了一个解决方案。这应该让您了解如何处理这种情况:http: //goo.gl/J8WZe

最终,我扩展了 WIF 模块类并添加了一些覆盖来替换我不需要的魔法方法。

我没有对此进行测试,但您可以做的另一件事是通过注册它公开的各种事件来利用 WIF 工作流程。

于 2011-10-25T14:15:12.210 回答