2016-07-15 83 views
2

我正在制作WebAPI服务。我只是使用ASP.NET WebAPI模板进行身份验证。我想知道如何限制那些已经登录的用户的数据库实体访问权限。使用[授权]我们可以限制未经授权的用户,这是我已经完成的。登录后,他们可以立即访问任何内容。例如:我有一张桌子比尔。通过BillId,被授权的用户可以访问Bill表中的任何条目。如何限制?目前Bill表与UserIdentity表没有任何关系!!如何限制访问WebAPI中的数据库资源

+0

好吧,好像你已经知道该怎么做了。如果你的意思是需要创建一个“权限”或“角色”的机制。每个经过身份验证的用户都应该具有角色,并且每次用户想要访问某个内容时,都应该面对其权限。 – jpgrassi

+0

正如@jpgrassi所说,你可能需要基于角色的访问。一旦用户在角色中,您可以扩展授权属性,如'[Authorize(Roles =“whatever”)]' – Crowcoder

+0

如果有2个具有相同角色的用户,则两个用户都可以访问属于另一个用户的数据,因为他们具有相同的角色。我们如何限制这一点? –

回答

0

想到这个场景后,我有一个解决方案[不确定最好]。在我所有的控制器中,我都可以获得Userid [Authenticated user's id]。当用户将数据添加到任何实体时,我会将用户ID作为列添加到该实体并存储用户标识。当任何用户查找资源时,他将只获取那些属于他的Userid的资源。我没有给任何用户表的任何关系,而只是将用户标识添加到所有实体作为新列。