Есть ли хороший способ получить список всех контроллеров, доступных для аутентифицированного пользователя API? - PullRequest
0 голосов
/ 29 мая 2019

Я создал API, аутентифицируемый с помощью OAuth.Я ограничиваю доступ к определенным контроллерам, используя тег в верхней части контроллера, который прекрасно работает.Но я хочу сделать, чтобы, как только пользователь прошел аутентификацию и получил токен, ему нужно представить, к каким контроллерам он имеет доступ.Есть ли чистый способ сделать это?

Например, если у меня есть два контроллера с именами 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

Любая помощь приветствуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...