Я пытаюсь реализовать пользовательский атрибут AuthorizeAttribute. В приведенном ниже примере кода при вводе метода IsAuthorized переменная moduleId сохраняет значение последнего запроса. Я ожидал отдельный объект для каждого запроса, и, следовательно, значение должно быть нулевым.Web API - переменные класса, сохраненные в запросах класса, наследующих AuthorizeAttribute
Public Class MyAuthorizeAttribute
Inherits AuthorizeAttribute
Private moduleId As String 'This is variable has previous requests value
Protected Overrides Function IsAuthorized(actionContext As HttpActionContext) As Boolean
moduleId = actionContext.RequestContext.RouteData.Values("moduleId")
'check if user has access to module
Return True
End Function
End Class
В AppStart атрибут custom authorize применяется ко всем запросам api.
Public Sub Register(ByVal config As HttpConfiguration)
config.Filters.Add(New MyAuthorizeAttribute())
End Sub
Такое же поведение наблюдается и для пользовательского ActionFilterAttribute.
Мой вопрос,
- Почему это происходит?
- Будет ли это иметь место, если есть сотни одновременных запросов? Если да, как я мог это преодолеть?
Заранее благодарен!