从Web API OAuth承载身份验证中检索用户信息

时间:2017-09-19 22:25:03

标签: c# asp.net-mvc oauth-2.0 asp.net-web-api2 owin

我有一个使用令牌验证的工作Web API,但我想检索发送该令牌的用户。

Request.GetOwinContext().Authentication.User.Identity.Name; // returns null

我怎样才能做到这一点?

感谢您的帮助。

1 个答案:

答案 0 :(得分:5)

我使用 owin 并以这种方式获取当前用户

ControllerContext.RequestContext.Principal.Identity.Name;

检查是否经过身份验证

ControllerContext.RequestContext.Principal.Identity.IsAuthenticated

确保用户名以这种方式链接到令牌(它在我的

上)
  

SimpleAuthorizationServerProvider:OAuthAuthorizationServerProvider

类)

 ClaimsIdentity oAuthIdentity = new ClaimsIdentity(context.Options.AuthenticationType);
                oAuthIdentity.AddClaim(new Claim(ClaimTypes.Name, context.UserName));