【发布时间】:2019-04-27 06:33:11
【问题描述】:
我在 Visual Studio C# 中创建了一个简单的 WebAPI 作为我的 Angular 后端。 用户可以通过 Angular 前端注册并传递给 WebAPI 中的控制器,以便在后端数据库 (MSSql) 中注册该用户。一切都好。
我正在使用从 Angular 到我的 API 的令牌身份验证,并使用声明和角色来验证用户是否已登录并有权访问所请求的控制器。
作为管理员,我如何禁用其他用户,以便他们立即被锁定?
一个例子是:一个流氓用户开始滥用 Angular 应用程序,我需要立即锁定他们,而不是等到他们的令牌过期并要求他们再次登录。
我可以检查每个控制器以在数据库中查找用户并检查他们的状态,如果我将他们的状态设置为“锁定”然后从控制器返回 403 禁止状态,但这似乎为他们提出的每个数据库请求查找用户很多。
有没有一种“点网”的方式来做到这一点?作为管理员,我希望能够实例化所述用户,将他们的“状态”声明值更改为“锁定”,我只是在发出 api 请求时检查他们的声明,但我看不到更改其他用户声明。
有什么想法吗?
谢谢。
【问题讨论】:
-
您不必在每个控制器中都实现这一点。查看“web.api 授权过滤器”
-
除了@IvayloStoev 建议的过滤器之外,您还可以创建一个 .net 委托处理程序并在您的管道检查所有请求的早期将其连接起来。 msdn.microsoft.com/query/…
标签: authentication asp.net-web-api oauth