2015-02-25 4 views
0

Я пытаюсь внедрить сервер для выпуска веб-токенов с использованием ASP.NET WebApi. Я нашел отличный учебник о том, как это сделать шаг за шагом, и все работает нормально, за исключением того, что мне нужно изменить некоторые значения в ответе HTTP.Изменение ответа HTTP в ASP.NET WebApi

Это изображение вызова, в котором проверены учетные данные пользователя, и если пользователь существует в базе данных, он получает токен, если он не получает HTTP 401 Error.

enter image description here

Здесь также ближе картина тела ответа, потому что он слишком мал, на предыдущей картинке:

enter image description here

Мой вопрос: Есть ли шанс изменить имя access_token свойство внутри возвратил JSON в auth_token. Мне нужно использовать другое имя, потому что, позже в проекте у меня будет еще один токен, и его имя тоже должно быть access_token. Мой второй вопрос: могу ли я изменить формат даты для .issued и .expires? Например, для yyyy-MM-dd?

Я использовал этот учебник http://bitoftech.net/2014/06/01/token-based-authentication-asp-net-web-api-2-owin-asp-net-identity/

Так код точно такой же. Я пытаюсь отслеживать создание ответа с помощью отладчика, но у меня нет четкого видения, где это может быть. Я предполагаю, что он находится внутри класса SimpleAuthorizationServerProvider, но я не могу найти явную настройку этих свойств в любом месте проекта, поэтому я думаю, что ответ создается автоматически.

+0

Я этого не делал раньше, но вы могли бы подумать об изменении ответа до его отправки клиенту? – Intrepid

+0

@Intrepid Проблема в том, что я никогда не пользовался безопасностью в WebApi (или WebApi), и я не уверен, как и где это сделать ... :( –

+0

Вся информация создается тем, что создает претензии ... так что ищите это. Он будет делать «context.Validated» .Он все о настройке Identity. –

ответ

1

При изменении названия или формат стандартных параметров маркеров ответных определенно не является хорошей идеей, вот способ сделать это в любом случае: https://stackoverflow.com/a/28683971/542757

В принципе, вы должны будете использовать уведомление TokenEndpointResponse и предоставить свою собственную полезную нагрузку JSON. К сожалению, есть ошибка, которая мешает ему работать с сервером авторизации OAuth2, встроенным в Katana 3. Вы можете взглянуть на развилку, разработанную мной с помощью @manfredsteyer; он включает исправление, которое допускает такой сценарий: https://github.com/aspnet-contrib/AspNet.Security.OpenIdConnect.Server/tree/dev

Смежные вопросы