我创建了一个令牌.NET Web API端点来获取OAuth承载令牌。在重新获得令牌之后,我调用了我的API的另一个端点,并将授权标头传递给我的承载令牌但是如果我检查RequestContext中的主体,它总是为空。为什么我的owin服务器不能创建主体对象。
注册我的授权提供商是否正确:
In [37]: temp = np.random.randint(1,10, 10)
In [38]: %timeit np.sort(temp)[::-1]
100000 loops, best of 3: 4.65 µs per loop
In [39]: %timeit temp[np.argsort(-temp)]
100000 loops, best of 3: 3.91 µs per loop
或者应该是.InstancePerRequest()。但是,如果我按请求使用实例,则会收到错误消息。有没有人为这个用例做一个工作的例子。 我非常拼命,因为我尝试了多个例子但没有解决方案。这甚至是关于这个问题的第二个线程(Token Based Authentication using ASP.NET Web API 2 and Owin throws 401 unautorized),但我认为我的问题在于autofac,因为它是与其他工作样本的唯一区别。
答案 0 :(得分:0)
这个答案解决了我的问题 https://stackoverflow.com/a/36769653/5441093
更改GrantResourceOwnerCredentials方法,以解析我的userbl类:
var autofacLifetimeScope = OwinContextExtensions.GetAutofacLifetimeScope(context.OwinContext);
var userBl = autofacLifetimeScope.Resolve<IUserBl>();
而不是使用autofac注入