我已经创建了一个令牌.NET web端点来获得一个OAuth承载令牌。在检索完令牌之后,我调用API的另一个端点,并传入授权头、我的承载令牌,但是如果我在RequestContext中检查主体,则始终为null。为什么我自己的服务器不创建一个主体对象。
这样注册我的授权提供者是正确的吗:
builder.RegisterType<SimpleAuthorizationServerProvider>()
.As<IOAuthAuthorizationServerProvider>()
.PropertiesAutowired()
.SingleInstance(); 或者应该是.InstancePerRequest()。但是,如果在每个请求中使用实例,则会收到一个错误。是否有人为此用例提供了一个工作示例。我非常绝望,因为我已经尝试了多个例子,但没有决心。这甚至是我在这个问题上的第二个线程(Token Based Authentication using ASP.NET Web API 2 and Owin throws 401 unautorized),但我认为我的问题存在于autofac,因为它是与其他工作示例的唯一区别。
发布于 2016-12-01 20:23:45
这个答案解决了我的问题https://stackoverflow.com/a/36769653/5441093
更改GrantResourceOwnerCredentials方法以解析我的userbl类:
var autofacLifetimeScope = OwinContextExtensions.GetAutofacLifetimeScope(context.OwinContext);
var userBl = autofacLifetimeScope.Resolve<IUserBl>();而不是使用注入的autofac
https://stackoverflow.com/questions/40875788
复制相似问题