我使用Identity Server 3 + OpenID Connect + OAuth 2.0在一个项目中实现单点登录。我已经按照提供的示例设置了一切,并且一切都运行良好。我正在使用隐式流程在多个MVC网站中对用户进行身份验证。
现在我有一个用例,需要从客户端应用程序传递自定义参数到身份服务器。其中最简单的例子之一是在Identity Server视图中显示需要显示的自定义消息。我想在不同的页面上呈现此消息 - 登录、注销、已注销等等。
我发现Microsoft的OpenIdConnectAuthentication中间件允许在RedirectToIdentityProvider通知中的ProtocolMessage中设置自定义参数。
例如,
现在我有一个用例,需要从客户端应用程序传递自定义参数到身份服务器。其中最简单的例子之一是在Identity Server视图中显示需要显示的自定义消息。我想在不同的页面上呈现此消息 - 登录、注销、已注销等等。
我发现Microsoft的OpenIdConnectAuthentication中间件允许在RedirectToIdentityProvider通知中的ProtocolMessage中设置自定义参数。
例如,
RedirectToIdentityProvider = async ctx =>
{
ctx.ProtocolMessage.Parameters.Add("info_message", "Account activation succeeded. Please log in using new account.");
}
}
很遗憾,我无法找到在Identity Server中读取这些参数的位置。这是可能的吗?
如果不支持或者完全错误,请指导处理此用例的最佳方法是什么?
acr_values
可以覆盖在登录视图中显示某些内容的情况。那么当我需要传递一些信息到注销/已注销屏幕时呢?例如:“您的会话已过期,请尝试重新登录”。 - Kaspars OzolsSignOutMessage
的ReturnUrl
不包含我在ctx.ProtocolMessage.Parameters
中设置的任何额外参数。我应该如何设置它们?您编辑后的答案只涵盖了有关参数提取的部分,而没有涉及设置。 - Kaspars OzolsKeyValuePair<string, string>
。 - Scott Brady