У меня есть веб-API с помощью Идентичность 2. Это кажется аутентифицировать меня хорошо, и /Token
конечная точка возвращает то, что я десериализации к AuthTicket
, например, с содержанием так же, как:Почему мой ASP.NET Web API с Identity 2 не предоставляет мне доступ к защищенным ресурсам?
AccessToken: "averylongtoken"
Expires: {2016/12/12 8:19:22 AM}
ExpiresIn: 1209599
Issued: {2016/11/28 8:19:22 AM}
TokenType: "bearer"
Username: "myusername"
Тогда, когда я отправить запрос как:
var response = await Client.GetAsync("api/appt/3/true", cancellationToken);
и Client.DefaultRequestHeaders.Authorization
выглядит следующим образом:
Bearer theSameVeryLongToken
Я все еще получаю 401 - Not authorized
. Что здесь может быть не так? Может быть, веб-API каким-то образом не получает или правильно расшифровывает токен-носитель? Когда я устанавливаю точку прерывания в API и проверяю свойство User
в действии контроллера, все его свойства имеют значение null или по умолчанию, но у него есть один ClaimsIdentity
, свойства которого также являются пустыми или стандартными, а его коллекция Claims
пуста ,
Должен ли я вручную устанавливать все претензии по сравнению с моими собственными? Я бы подумал, что ApplicationOAuthProvider.GrantResourceOwnerCredentials
хотя бы добавит претензии, такие как имя пользователя или идентификатор.
Если вы запустили свой запрос в Fiddler, вы видите свой токен, прошедший в заголовках запроса? А также что вы видите в контексте запроса в вашем классе OAuthProvider в методе GrantResourceOwnerCredentials? – Jinish
По какой-то причине я не вижу запросов, полученных с помощью моего URL-адреса API. Когда я устанавливаю фильтр только на хост 'localhost: 51999', мой API и запускает запрос на почту от клиента, ничего не фиксируется. Я не вижу контекста запроса в «GrantResourceOwnerCredentials», только «OAuthGrantResourceOwnerCredentialsContext» и не является этим методом, который вызывается из конечной точки «/ Token», чтобы подписать пользователя. Все это прекрасно работает, как я четко заявил, при входе я получаю хороший ответ от '/ Token', с токеном auth, но он еще не будет в заголовках в« GrantResourceOwnerCredentials ». – ProfK