Я создал 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
Любая помощь приветствуется.