WCF4 REST API ключ вопрос - передать информацию от ServiceAuthorizationManager сервисам - PullRequest
1 голос
/ 30 июня 2011

Я хочу реализовать решение для аутентификации ключей API для моего API REST WCF4.

Я знаю, что мне нужно создать класс и извлечь его из ServiceAuthorizationManager и переопределить метод CheckAccessCore. Все что я понимаю.

Но то, что я хочу сделать из CheckAccessCore, передать внутреннюю информацию из CheckAccessCore в мои классы реализации Сервиса. Такая информация, как «ApiKeyID, права, флаги и другие подробности», которую я нашел при выполнении аутентификации ApiKey.

Чтобы мои сервисы могли использовать внутренний ApiKeyID при вызове логики домена.

Я видел много разных способов сделать это, например

operationContext.ServiceSecurityContext.AuthorizationContext.Properties["Principal"] = p;

или

System.Threading.Thread.CurrentPrincipal = principal;
HttpContext.Current.User = principal;

и другие способы ....

1 Ответ

0 голосов
/ 15 сентября 2011

Другой способ передачи объектов - добавление объекта в коллекцию свойств объекта RequestMessage.

IssuedToken Token = new IssuedToken() 
operationContext.RequestContext.RequestMessage.Properties.Add("NameOfObj",Token);
...