CurrentUser / ClaimsPrincipal

时间:2013-11-22 15:38:11

标签: c# owin

我需要一些帮助。如何访问当前经过身份验证的用户/ ClaimsPrincipal。在过去,我会使用HttpContext.Current,但现在看来它似乎是错误的。

3 个答案:

答案 0 :(得分:11)

使用OWIN,可以从OWIN上下文的Authentication.User属性中找到用户。

OwinContext context = Request.GetOwinContext();
ClaimsPrinicipal user = context.Authentication.User;
// do stuff with user.

Brock Allen有post on using cookie authentication with OWIN

答案 1 :(得分:3)

如果您使用的是Web Api 2,那么您现在应该使用RequestContext.Principal来满足任何身份检查/分配需求。

答案 2 :(得分:0)

您想在什么情况下访问它?我将从发布OAuth2令牌的Web API服务的角度回答,因为这就是我刚刚编程的事情。如果那不是您的情况,请告诉我们您的具体情况。

如果您需要经过身份验证的用户,以便您可以发出令牌,并且已覆盖OAuthAuthorizationServerProvider,则可以在context.Request.User中找到它,其中context是其中的参数重写方法。

在继承自ApiController的类中(在ASP.NET Web API中),您可以检查this.User。这将是您放入OAuth2令牌的ClaimsPrincipal