首页 > 解决方案 > 如果存在查询字符串值,.Net Core Web Catch All

问题描述

我做了一个控制器来处理单点登录。当有人调用一个指向控制器的 GET Url 时,它会起作用,该控制器带有一个包含其 JWT(先前在后端创建)的“access_token”查询字符串。它运行良好,在检查 JWT 验证后,我创建了一个用户会话,然后重定向到默认仪表板。

但是,我想在任何控制器上接受这个“access_token”查询字符串,而不需要在整个系统上的每个函数上检查这个(比如 if)。因此,我需要检查是否存在该查询字符串,如果是,则运行验证和登录功能并将用户保持在请求的控制器上。这就像来自任何 url 的单点登录,只是在寻找查询字符串。

我想如果我可以在每个控制器上使用属性或在启动路由选项上使用某些东西......在每个控制器功能上放置一个 if 是没有意义的。

PS:此应用程序使用默认的 Cookie 方案进行身份验证。Vue 应用程序使用上述 JWT 在用户通过身份验证后访问另一个 API。

问题很简单:有没有办法“捕获所有”带有 access_token 查询字符串的任何 url 并在授权属性之前处理?像管道一样:请求 > HasQuerystringAndHandle > 授权 > 授予/拒绝

谢谢你。

标签: asp.net-mvcauthenticationroutes

解决方案


推荐阅读