5

我正在使用 Thinktecture.IdentityServer.v2 应用程序为几个内部应用程序执行 SSO,但希望为每个应用程序自定义登录页面以获得更流畅的用户体验。我似乎找不到办法做到这一点。

登录页面是否可以根据客户端来自的源应用程序进行自定义?

4

3 回答 3

4

“我似乎找不到办法做到这一点。” - 你努力了多少?;)

RP 具有额外的数据字段 - 因此您可以像 CSS 名称一样挂在注册数据库中的 RP 上。此外,您可以从登录页面获取该 RP 数据 - 引用 AccountController 中的评论:

// 您可以调用 AuthenticationHelper.GetRelyingPartyDetailsFromReturnUrl 来获取有关请求的依赖方的更多信息

顺便说一句 - IdentityServer 的 github repo 有一个问题跟踪器 - 你应该用它来提问。

于 2013-06-15T05:04:31.203 回答
1

您始终可以让 RP 传递一个自定义查询字符串参数并对其进行自定义。但是此时您已经超出了 WS-Federation 的范围。另外,您必须考虑 SSO 的性质——用户真正登录的是 IdP,而不是应用程序。因此,将 IdP 更改为看起来像应用程序有点虚伪。

于 2013-06-13T17:29:26.557 回答
0

我已经通过自定义SignIn.cshtml以将样式调整为我需要的方式解决了这个问题。此外,我在SignIn.cshtml的顶部有服务器端代码,它在 ReturnUrl ( Request.QueryString["ReturnUrl"])上进行一些字符串匹配。然后我根据我知道对于不同 RP url 是唯一的一些值显示不同的徽标和标题文本。

升级到 ThinkTecture MVC 的新版本时,只需将此文件更新为您的具体情况(只需记住在升级之前拥有修改后的SignIn.cshtml的副本)将是一项小工作。

于 2014-02-12T10:59:39.090 回答