C# IdentityServer4登录用户使用OpenID连接事件在客户端应用程序中验证

C# IdentityServer4登录用户使用OpenID连接事件在客户端应用程序中验证,c#,asp.net-core,identityserver4,C#,Asp.net Core,Identityserver4,我正在开发.NETCore(2.2)应用程序。我们正在使用IdentityServer4进行用户登录。我想在用户从Identity Server应用程序登录后验证登录用户。我们正在为多个应用程序使用公共标识服务器。所以我应该只在客户端应用程序中进行验证 我想在OpenID连接事件中进行验证,如 比如说, 这样做有可能吗?您可以使用事件处理程序验证用户,但更好的解决方案是在ASP.NET Core中的授权处理程序中执行这一部分。所有这些都内置在ASP.NET核心中,允许您使用内置的基于策略的授权

我正在开发.NETCore(2.2)应用程序。我们正在使用IdentityServer4进行用户登录。我想在用户从Identity Server应用程序登录后验证登录用户。我们正在为多个应用程序使用公共标识服务器。所以我应该只在客户端应用程序中进行验证

我想在OpenID连接事件中进行验证,如

比如说,


这样做有可能吗?

您可以使用事件处理程序验证用户,但更好的解决方案是在ASP.NET Core中的授权处理程序中执行这一部分。所有这些都内置在ASP.NET核心中,允许您使用内置的基于策略的授权模型创建非常复杂的授权场景

您可以在此处阅读更多有关内容:

将身份验证和授权分离并使用此体系结构也很重要,因为它将用于ASP.NET核心,如下图所示:


更好的方法是在ASP.NET Core中的授权处理程序中对用户进行验证?如果我可以使用授权处理程序,则用户可以保持登录会话。我的方案是,如果登录用户期限到期。用户无法允许登录。我应该抛出异常消息,如您的登录时间已过期。使用OpenID Connect,您可以进行配置,以便在cookie/用户会话过期时重定向回identityServer或“未登录”错误页。如果登录用户时间已过期,我想这样做。我必须抛出CustomError页面,还必须清除用户登录会话和cookie。您有几个东西可能会过期,本地cookie会话、访问令牌和刷新令牌,您还有一个带有IdentityServer的cookie会话。