WebAPI如何从管理员禁用另一个用户

时间:2018-11-25 11:51:10

标签: authentication asp.net-web-api oauth

我已经在Visual Studio C#中创建了一个简单的WebAPI,用作我的Angular后端。 用户可以通过Angular前端进行注册,然后传递到WebAPI中的控制器,以在后端数据库(MSSql)中注册该用户。很好。

我正在使用从Angular到我的API的令牌身份验证,并使用声明和角色来验证用户已登录并有权访问请求的控制器。

作为管理员,如何禁用另一个用户,以便他们立即被锁定?

一个例子是:一个流氓用户开始滥用Angular应用程序,我需要立即将其锁定,而不要等到其令牌到期并且需要再次登录。

我可以在每个控制器中进行检查,以在数据库中查找用户并检查其状态,如果我将其状态设置为“锁定”,然后从控制器返回说403禁止状态,但这似乎要为用户提出的每个数据库请求查找用户。

是否有一种“点网”方式?我希望能够以管理员身份实例化该用户,将其“状态”的声明值更改为“锁定”,我在发出api请求时只是检查了他们的声明,但看不到更改其他用户的主张。

有什么想法吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

在上面的评论中,我们在管道中有一个处理授权的处理程序。我们确实查看了该Authorization标头并对其进行了解析,但是所有控制器都依赖于挂在Properties集合中的已解析值。这样,所有AuthZ / AuthN都将在此处理程序中发生,并且处理程序在Properties集合中设置的所有内容都将由应用程序看到。

在您的情况下,处理人员将需要能够检查您正在使用的任何油门或锁止装置,并用“用户已锁止”索偿来代替收到的实际索偿。