#c# #.net #wcf #service #authorization
#c# #.net #wcf #Обслуживание #авторизация
Вопрос:
Я пытаюсь реализовать пользовательский ServiceAuthorizationManager. В моем ServiceContract у меня есть пользовательский атрибут для каждого метода, называемый ‘Authorization’, где у меня есть флаг, требуется ли авторизация или нет.
Что я хочу сделать, так это из моего ServiceAuthorizationManager получить связанный ServiceContract для текущего запроса, проверить атрибут для конечной точки, к которой обращается, затем просто вернуть true, если авторизация не требуется.
Каков наилучший способ получить к этому доступ? Как только я получу его, я могу легко использовать отражение для получения моей информации об авторизации.
Спасибо за помощь.
Ответ №1:
Ну, один из способов — выполнить действие следующим образом:
string action = operationContext.RequestContext.RequestMessage.Headers.Action;
Действие выполняется в формате:
ServiceNamespace/ContractName/OperationName
Если вы планируете использовать отражение для получения интерфейса и проверки его пользовательских атрибутов, это должно быть все, что вам нужно.
Комментарии:
1. Спасибо, это должно сработать. Я надеялся на что-то более простое, но я воспользуюсь тем, что смогу получить.