如何从Identity Server部分登录

时间:2016-08-05 16:37:26

标签: identityserver3

我们的登录过程包括提供用户名和密码的用户,然后在验证后,让他们选择要“登录”的组织。他们的用户ID和他们选择的组织的组合构成了他们的“主题”主张。

我正在使用Identity Server 3并取得良好进展。我创建了一个用户服务来验证捕获的用户名和密码。如果用户只有一个组织选择,则用户服务将执行完全登录。如果用户有选择或组织,则用户服务创建三个声明(用户名,密码和组织选择)并执行部分登录重定向到组织选择页面(具有三个声明且没有主题)。这很好用(虽然我想知道通过声明传递用户名和密码是否明智)。

我的困惑在于组织选择控制器:

1)如果用户成功选择了一个组织,我可以使用GetPartialLoginResumeUrlAsync来恢复登录...但为了完成这项工作,我相信我必须使用UpdatePartialLoginClaimsAsync手动添加sub,name,idp,amr和auth time声明。 。有更简单的方法吗?

2)如果用户不成功(可能他们花了很长时间选择一个组织,现在他们已被禁用),我该如何完成该过程但返回错误消息?在用户服务中,我刚刚创建了一个带有错误消息的AuthenticateResult。

谢谢

1 个答案:

答案 0 :(得分:1)

  

1)如果用户成功选择了一个组织,我可以使用GetPartialLoginResumeUrlAsync来恢复登录...但为了完成这项工作,我相信我必须使用UpdatePartialLoginClaimsAsync手动添加sub,name,idp,amr和auth time声明。 。有更简单的方法吗?

这就是预期的工作方式:这些是登录过程中所要求的声明。

  

2)如果用户不成功(可能他们花了很长时间选择一个组织,现在他们已被禁用),我该如何完成该过程但返回错误消息?在用户服务中,我刚刚创建了一个带有错误消息的AuthenticateResult。

您希望错误消息在哪里?您已经在自定义页面上,为什么不在那里显示您的错误?

相关问题