如何在 OAuthAuthorizationServerProvider 的 GrantResourceOwnerCredentials 方法中手动设置当前用户?



我有一个asp.net mvc webapi 2项目,我正在使用带有owin和oauth的新asp.net身份基础设施及其所有优秀功能。。。

我正在使用基于令牌的系统进行授权:app.UseOAuthBearerTokens(OAuthOptions);

一切都很好,我唯一的问题是:在我自己的OAuthAuthorizationServerProvider实现中,在方法GrantResourceOwnerCredentials(一旦用户想通过访问/token-url进行身份验证,就会调用该方法)中,在检查用户有效性和其他事情之后,我需要调用其他方法(重新计算购物车等),但这些方法(不要问为什么)会查看当前上下文User以获取用户的用户名和角色,但在运行GrantResourceOwnerCredentials方法期间,当前上下文User为空(这在某种程度上很正常-我没有问为什么)。

我的问题是:为了不违反使用oAuth承载令牌授权的任何准则,可以这样手动设置用户吗?

context.Request.User = new ClaimsPrincipal(oAuthIdentity);

感谢您的反馈。

在owin中,承载和授权的启动顺序必须像这样

app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
app.UseOAuthAuthorizationServer(new OAuthAuthorizationServerOptions());

查看此答案

相关内容

  • 没有找到相关文章