2016-11-29 58 views
0

我已經創建了一個令牌.NET Web API端點以獲取OAuth載體令牌。在重新獲取令牌後,我調用API的另一個端點,並傳入授權標頭中的持票人標記,但是如果在RequestContext中檢查主體,它始終爲空。爲什麼我的owin服務器不創建主體對象。RequestContext Principal始終爲空

是正確登記自己的授權商是這樣的:

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

還是應.InstancePerRequest()。但是,如果我使用每個請求的實例,我收到一個錯誤。有沒有人有這個用例的一個工作示例。 我非常絕望,因爲我嘗試了多個例子,但沒有解決。這甚至是我的第二個線程(Token Based Authentication using ASP.NET Web API 2 and Owin throws 401 unautorized)對這個問題,但我認爲我的問題駐留在autofac上,因爲它是與其他工作示例的唯一區別。

回答

0

這個回答解決我的問題在GrantResourceOwnerCredentials方法 https://stackoverflow.com/a/36769653/5441093

更改爲解決我userbl類:

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

,而不是使用autofac

注射