背景獲得的RouteData在控制器的構造/屬性來路由[授權]的的ConnectionString
我有一個使用每個租戶多個數據庫多租戶應用。我使用的是CodeFirstMembership,所以我完全控制了SimpleMembership實現。我的用戶/角色實體都與我的應用程序的其餘部分處於相同的DbContext中。
的問題
爲了方便多tenance,我有一個看起來完全一樣,什麼默認香草MVC路線的樣子,與我搶的子站點例外,檢查一個自定義路由它針對擁有帳戶的租戶,並抓住他們特定的連接字符串。我在RouteData上有一個名爲.GetSubdomain()的擴展方法,它將返回所使用的子域,所以我可以真正做檢查並在任何地方獲取連接字符串,如果這有助於您的答案。
我需要我的成員資格提供程序才能訪問子域檢查信息,以便指向[Authorize]方法正確工作的正確數據庫。
我已經試過
- 初始化成員提供的InitializeSimpleMembershipAttribute
- 這並沒有工作,因爲你不能在動態參數傳遞到屬性(如的RouteData。 GetSubdomain())
- 初始化構造中的成員資格uctor。
- 雖然您可以在構造函數中調用RouteData方法並讓應用程序生成/運行,但是RouteData尚未在控制器的構造函數中填充,因此此方法也不起作用。
- 我沒有嘗試過,但是在每個控制器方法的開始處添加檢查可能不起作用,因爲授權已經運行。
所以... 出了什麼我已經試過,好像我需要掛接到其中的RouteData填充與實際授權之間的點。有一點我可以有效地做到這一點?
謝謝!