我建立了一个经过OAuth认证的API。我使用控制器顶部的标签来限制对某些控制器的访问,效果很好。但是我想做的是,一旦用户通过身份验证并获得令牌,就应该向他们展示他们可以访问哪些控制器。有一种干净的方法吗?
例如,如果我有两个名为Module1Controller和Module2Controller的控制器,而user1仅被授权使用Module1Controller,那么我如何让该用户知道这一点,而又不让他们偶然遇到Module2Controller并得到401-未经授权错误?也许所有通过API进行身份验证的用户都必须通过初步控制器,该控制器列出了他们可以访问的用户?
仅授权user1的示例控制器:
Namespace Controllers
<Authorize(Users:="user1")>
Public Class Module1Controller
Inherits ApiController
' GET: api/Module1
Public Function GetValues() As IEnumerable(Of String)
Return New String() {"This", "is", "Module1"}
End Function
' GET: api/Module1/5
Public Function GetValue(ByVal id As Integer) As String
Return "value"
End Function
' POST: api/Module1
Public Sub PostValue(<FromBody()> ByVal value As String)
End Sub
' PUT: api/Module1/5
Public Sub PutValue(ByVal id As Integer, <FromBody()> ByVal value As String)
End Sub
' DELETE: api/Module1/5
Public Sub DeleteValue(ByVal id As Integer)
End Sub
End Class
End Namespace
感谢您的帮助。