2014-06-05 74 views
0

我目前在我的多租戶CMS中使用Owin 2.0。我需要一種方法來根據租戶更改Facebook應用ID和祕密。在多租戶網站中使用Owin OAuth 2.0

問題是Owin配置代碼在執行任何其他操作之前執行。 Request.Url不是解決方案。請給我一個實用的解決方案。目前我只能通過url區分租戶。

回答

3

使用該答案爲有用的提示,而不是一個解決方案

您應該使用FacebookAuthenticationProvider定製爲每個租戶完整流程。 FacebookAuthenticationProvider有三個事件暴露,將有助於定製。

提示:在Visual Studio

FacebookAuthenticationOptions fbOptions = new FacebookAuthenticationOptions(); 
fbOptions.AppId = "DefaultAppId"; 
fbOptions.AppSecret = "DefaultSecret"; 
fbOptions.CallbackPath = new PathString("DefaultTenantWithCallBackUrl"); 
fbOptions.Provider = new FacebookAuthenticationProvider() 
{ 
    OnApplyRedirect = (FacebookApplyRedirectContext context) => 
    { 
     /*a way to change the facebook app id and secret depending on the tenant.*/ 
     /*Redirect to tenant specific built url */ 
    }, 
    OnAuthenticated = (FacebookAuthenticatedContext context) => 
    { 
     /*process tenant specific logic*/ 
     return Task.FromResult(0); 
    }, 
    OnReturnEndpoint = (FacebookReturnEndpointContext context) => 
    { 
     /*process tenant specific logic*/ 
     return Task.FromResult(0); 
    } 
}; 
app.Use(typeof(FacebookAuthenticationMiddleware), app, fbOptions); 
+0

使用對象瀏覽器謝謝你的解決方案。有效!! – eadam