我们正在开发自定义身份提供程序(STS)来验证我们的应用程序。在这个项目中,我们使用Azure Acesses Control Services 2.0,我们的身份提供商是一个wsfederation。
因此,在启动项目时,azure ACS有一个名为wctx的url参数,此参数用于传递任何内容,ACS在de ACS重定向到Identity提供程序时保留参数,但现在参数的值在加密时加密登录页面已打开,因此我们无法阅读。
我想传递一种文化,并且正在调用登录页面。
有人有任何想法吗?
答案 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;
}
您想要传递的任何额外参数都可以通过这种方式添加,并将其提供给您的身份提供者。