将URL参数从Azure ACS传递到我的自定义身份提供程序?

时间:2013-02-26 19:08:52

标签: azure wif identity acs

我们正在开发自定义身份提供程序(STS)来验证我们的应用程序。在这个项目中,我们使用Azure Acesses Control Services 2.0,我们的身份提供商是一个wsfederation。

因此,在启动项目时,azure ACS有一个名为wctx的url参数,此参数用于传递任何内容,ACS在de ACS重定向到Identity提供程序时保留参数,但现在参数的值在加密时加密登录页面已打开,因此我们无法阅读。

我想传递一种文化,并且正在调用登录页面。

有人有任何想法吗?

1 个答案:

答案 0 :(得分:2)

您的身份提供商不应使用wctx参数。此参数的目的是让RP存储所需的任何数据,当ACS发送WS-Federation登录响应时,该数据将与令牌一起返回给它。如果您想向您的身份提供商发送消息,最简单的方法是托管您自己的HRD页面,例如"选项2:托管自定义登录页面" this MSDN page的部分。下载命名空间中的链接样本作为起点,然后修改以下代码:

    // Sets a cookie to remember the chosen identity provider and navigates to it.
    function IdentityProviderButtonClicked() {
        SetCookie(this.getAttribute("name"));

        // Add any extra query parameters you want before redirecting.
        window.location = this.getAttribute("id") + "&extraParameter=value";
        return false;
    }

您想要传递的任何额外参数都可以通过这种方式添加,并将其提供给您的身份提供者。