我正在使用Thinktecture.IdentityServer.v2应用程序为几个内部应用程序执行SSO,但希望自定义每个应用程序的登录页面,以获得更流畅的用户体验。我似乎找不到实现这一点的方法。
可以根据客户端来源的源应用程序自定义登录页面吗?
我正在使用Thinktecture.IdentityServer.v2应用程序为几个内部应用程序执行SSO,但希望自定义每个应用程序的登录页面,以获得更流畅的用户体验。我似乎找不到实现这一点的方法。
可以根据客户端来源的源应用程序自定义登录页面吗?
"我似乎找不到做那件事的方法。"——你尝试了多努力? ;)
RP有额外的数据字段,因此您可以在注册数据库中将类似CSS名称挂在RP上。此外,您可以从登录页面访问该RP数据-引用AccountController中的评论:
// 您可以调用AuthenticationHelper.GetRelyingPartyDetailsFromReturnUrl以获取有关所请求的受信任方的更多信息
顺便说一句,IdentityServer的Github存储库具有问题跟踪器-您应该使用它来提出问题。
我通过自定义SignIn.cshtml来调整样式以满足我的需求,从而解决了这个问题。此外,在SignIn.cshtml的顶部有一些服务器端代码,对ReturnUrl (Request.QueryString["ReturnUrl"]
)进行了一些字符串匹配。然后,根据我知道的不同RP URL的某些唯一值,显示不同的徽标和标题文本。
当升级到新版本的ThinkTecture MVC时,只需更新此文件即可(记得在升级之前备份修改过的SignIn.cshtml文件)。