asp.net MVC Web API - регистрировать новый токен на предъявителя - PullRequest
0 голосов
/ 27 февраля 2019

У меня в настоящее время Visual Studio 2017 с проектом единой аутентификации Web API.

Я просто хочу войти, когда маркер носителя (после успешной аутентификации) передается пользователю в текстовый файл.Т.е. когда пользователь отправляет запрос в / Token и получает обратно соответствующий токен.

Я не уверен, где найти метод / где эта переменная возвращается.Т.е. какой класс / функция и т. Д. Перед возвращением этого токена я просто хочу добавить несколько строк кода.(Т.е. у меня есть несколько строк кода, готовых войти в текстовый файл с токеном, датой и временем, именем пользователя и т. Д., Я просто не знаю, где их разместить!).

Часть моей регистрациикоды включают в себя сохранение User-Agent в запросе, отправленном в / Token.Я начинаю думать, что мне, возможно, придется что-то делать в ApplicationOAuthProvider.cs, но я не уверен, как извлечь запрос пользователя в текущем контексте для извлечения данных агента пользователя.

На данный момент я хотел бы сохранить,User-Agent (ранее использовался Request.Headers.Useragent), имя пользователя (ранее использовался User.Identity.GetUserName ()), Date & Time (DateTime.Now), фактический токен, возвращенный пользователю.

Редактировать 2: Я успешно получил User-Agent, используя

var myString = context.Request.Headers.Get("User-Agent");

Добавив его после (user == null) проверки в ApplicationOAuthProvider.cs

Теперь я пытаюсь выяснить, как перехватить фактический токен, возвращаемый пользователю и пользователю, который получает этот токен (т. Е. Имя пользователя).

Спасибо!

1 Ответ

0 голосов
/ 27 февраля 2019

Если я достаточно хорошо понял вашу проблему, я думаю, вы захотите записать некоторую информацию после успешной аутентификации на основе токенов и получить эту информацию для в контексте контроллера API или в любом контексте атрибута authorize.

Если этов этом случае, я посоветую вам использовать претензии , претензия - это способ сохранить и получить расширенную информацию для аутентификации.например, пользовательский агент, о котором вы упомянули.

вы можете создать класс, который наследуется OAuthAuthorizationServerProvider , а затем переопределить GrantResourceOwnerCredentials , который, я полагаю, выуже сделано.Сразу после того, как вы авторизуете пользователя с помощью своей логики, а также перед генерацией тикета и отправкой токена, вы можете добавить любые претензии для пользователя или даже в вашем случае сгенерировать файл журнала (который, на мой взгляд, не очень корректен).путь).Я надеюсь, что это помогает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...