有没有一种好的方法来获取已认证的API用户可用的所有控制器的列表?

时间:2019-05-29 15:54:15

标签: asp.net vb.net api oauth

我建立了一个经过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

感谢您的帮助。

0 个答案:

没有答案