У меня есть приложение WebApi2 с аутентификацией OAuth, и я использую утверждения, чтобы связать идентификатор пользователя с токеном доступа, поэтому в контроллере я могу узнать, к какому пользователю обращается.Как использовать претензии в WebApi с OAuth
Q1. Это хороший подход?
Q2. Есть ли способ получить доступ к значениям требований вне контроллера в приложении Owin WebApi? В одном случае я привязываю свои услуги в своем контейнере DI, и я хочу передать идентификатор пользователя на услугу
Я установил CurrentPrincipal с новым ClaimPrincipal с моим ClaimIdentity, который содержит требование с USERID, Я использую Ninject в качестве контейнера DI, когда пытаюсь связать свою службу. Я использую ToMethod для ленивого создания экземпляра службы, в методе, который я вызываю Thread.CurrentPrincipal как ClaimsPrincipal, но я не могу найти userId в списке претензий, список пуст. Я что-то упускаю? –
У вас есть какие-либо асинхронные звонки в вашей цепочке? Возможно, это потому, что вы устанавливаете CurrentPrincipal в поток и читаете его из другого потока? – Aram
Просмотреть этот gist https://gist.github.com/marciotoshio/e54e590bb7ca9d10bbf4 показать, где я создаю своего Принципала, и где я пытаюсь его использовать –