我有一个asp.net mvc webapi 2项目,我正在使用新的asp.net身份基础设施,包括owin和oauth及其所有强大功能......
我正在使用基于令牌的系统进行授权:app.UseOAuthBearerTokens(OAuthOptions);
一切都很有效,我唯一的问题是以下内容 - 在我自己的OAuthAuthorizationServerProvider
实现中,在方法GrantResourceOwnerCredentials
中(一旦用户想要通过访问/ token url),在检查用户有效性和其他事情之后,我需要调用其他方法(重新计算购物车等)但这些方法(不要问为什么)查看当前上下文User
以获取用户的用户名和角色,但在运行GrantResourceOwnerCredentials
方法期间,当前上下文User
为空(在某种程度上是正常的 - 我不是在问为什么)。
我的问题是:为了不破坏使用oAuth承载令牌授权的任何指导,可以像这样手动设置此方法中的用户吗?
context.Request.User = new ClaimsPrincipal(oAuthIdentity);
感谢您的反馈。
答案 0 :(得分:0)
必须是这样的
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
app.UseOAuthAuthorizationServer(new OAuthAuthorizationServerOptions());
查看此answer