RequestContext Principal 始终为空

RequestContext Principal always null

我已经创建了一个令牌 .NET web API 端点来获取 OAuth 不记名令牌。检索令牌后,我调用 API 的另一个端点,并传入授权 header 我的不记名令牌,但如果我检查 RequestContext 中的委托人,它始终为空。为什么我的 owin 服务器没有创建主体 object.

这样注册我的授权提供者是否正确:

 builder.RegisterType<SimpleAuthorizationServerProvider>()
            .As<IOAuthAuthorizationServerProvider>()
            .PropertiesAutowired()
            .SingleInstance(); 

或者应该是.InstancePerRequest()。但是,如果我根据请求使用实例,则会收到错误消息。有没有人有这个用例的工作示例。 我非常绝望,因为我尝试了多个示例但没有解决。这甚至是我关于这个问题的第二个线程 (),但我认为我的问题出在 autofac 上,因为它是与其他工作示例的唯一区别。

这个答案解决了我的问题

更改 GrantResourceOwnerCredentials 方法以解析我的用户 class:

var autofacLifetimeScope = OwinContextExtensions.GetAutofacLifetimeScope(context.OwinContext);
        var userBl = autofacLifetimeScope.Resolve<IUserBl>();

而不是使用autofac的注入