我们的登录过程包括提供用户名和密码的用户,然后在验证后,让他们选择要“登录”的组织。他们的用户ID和他们选择的组织的组合构成了他们的“主题”主张。
我正在使用Identity Server 3并取得良好进展。我创建了一个用户服务来验证捕获的用户名和密码。如果用户只有一个组织选择,则用户服务将执行完全登录。如果用户有选择或组织,则用户服务创建三个声明(用户名,密码和组织选择)并执行部分登录重定向到组织选择页面(具有三个声明且没有主题)。这很好用(虽然我想知道通过声明传递用户名和密码是否明智)。
我的困惑在于组织选择控制器:
1)如果用户成功选择了一个组织,我可以使用GetPartialLoginResumeUrlAsync来恢复登录...但为了完成这项工作,我相信我必须使用UpdatePartialLoginClaimsAsync手动添加sub,name,idp,amr和auth time声明。 。有更简单的方法吗?
2)如果用户不成功(可能他们花了很长时间选择一个组织,现在他们已被禁用),我该如何完成该过程但返回错误消息?在用户服务中,我刚刚创建了一个带有错误消息的AuthenticateResult。
谢谢
墩
答案 0 :(得分:1)
1)如果用户成功选择了一个组织,我可以使用GetPartialLoginResumeUrlAsync来恢复登录...但为了完成这项工作,我相信我必须使用UpdatePartialLoginClaimsAsync手动添加sub,name,idp,amr和auth time声明。 。有更简单的方法吗?
这就是预期的工作方式:这些是登录过程中所要求的声明。
2)如果用户不成功(可能他们花了很长时间选择一个组织,现在他们已被禁用),我该如何完成该过程但返回错误消息?在用户服务中,我刚刚创建了一个带有错误消息的AuthenticateResult。
您希望错误消息在哪里?您已经在自定义页面上,为什么不在那里显示您的错误?