繁体   English   中英

asp.net MVC Web API-记录发送给用户的新承载令牌

[英]asp.net MVC Web API - Log New Bearer Token sent to User

我目前有带有Web API单一身份验证项目的Visual Studio 2017。

我只想记录将用户令牌(成功认证后)提供给用户的文本文件。 也就是说,当用户向/ Token发送请求并收到相关令牌时。

我不确定在哪里可以找到方法/在哪里返回该变量。 即是什么类/函数等。在返回此令牌之前,我只想添加几行代码。 (即我已经准备好几行代码,将令牌,日期和时间,用户名等登录到文本文件,我只是不知道将这些放在哪里!)。

我的部分日志记录代码涉及将User-Agent保存在发送到/ Token的请求中。 我开始认为我可能必须在ApplicationOAuthProvider.cs中执行某些操作,但是我不确定如何在当前上下文中检索用户的请求以提取用户代理数据。

现在,我要保存,User-Agent(以前使用Request.Headers.Useragent),Username(以前使用User.Identity.GetUserName()),日期和时间(DateTime.Now),返回的实际令牌给用户。

编辑2:我已经成功使用检索了User-Agent

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

通过在ApplicationOAuthProvider.cs中的(user == null)检查之后添加它

现在,我试图弄清楚如何拦截返回给用户的实际令牌以及接收此令牌的用户(即用户名)。

谢谢!

如果我足够了解您的问题,我猜您想在成功进行基于令牌的身份验证后记录一些信息,并在API控制器上下文或任何授权属性上下文中检索该信息。

如果那是问题,我建议您使用Claims ,Claim是保存和检索丰富的身份验证信息的一种方法。 例如,您提到的用户代理。

您可以创建一个由OAuthAuthorizationServerProvider继承的 ,然后覆盖我想您已经完成的GrantResourceOwnerCredentials 在您按照逻辑授权用户之后,在生成票证并发回令牌之前,您可以为用户添加所需的任何声明,甚至在您的情况下生成日志文件(我认为这不是非常有效的)方式)。 希望对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM