2014-03-27 2 views
3

여러 데이터베이스에 연결된 C# mvc.net 응용 프로그램이 있습니다. URL의 하위 도메인에 따라 앱이 특정 데이터베이스에 연결됩니다. 이 작업은 web.config의 defaultConnectionFactory을 IDbConnectionFactory의 사용자 정의 구현으로 설정하면 수행됩니다. 이 모든 것이 잘 작동합니다.여러 데이터베이스가있는 WebSecurity

그러나 WebSecurity에 문제가 있습니다. 모든 WebSecurity 기능 (예. 로그인,의 createAccount 등)이 응용 프로그램 시작

protected void Application_Start() 
{ 
    WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true); 
    //other initialisation stuf 

WebMatrix에 따르면에 초기화 데이터베이스를 기반으로의 InitializeDatabaseConnection 기능은 응용 프로그램 시작시 한 번만 호출, 따라서 항상 지시한다 같은 데이터베이스에.

내가 원하는 것은 httpRequest에 따라 모든 WebSecurity 항목이 하위 도메인에 연결된 데이터베이스에서 수행된다는 것입니다.

아무에게도이 상황을 어떻게 해결할 수있는 조언이 있습니까? WebSecurity를 ​​무시하고 httpRequest별로 초기화해야합니까? 아니면 사용자 지정 SimpleMembership 공급자와 함께해야합니까?

미리 감사드립니다.

답변

0

일반적으로 이것은 나쁜 생각처럼 보입니다. 그러나 하위 도메인 수가 적은 경우 하위 도메인 중 하나를 처리하는 여러 웹 사이트를 실행할 수 있습니다. 나는 서버의 부하가 다를 것이라고 생각하지 않는다. 하위 도메인을 독립적으로 올리거나 내릴 수 있다는 이점이 있습니다. 물론 소프트웨어를 여러 번 배포해야합니다.

이제 하위 도메인이 많은 경우 : miamiFl.blahblah.com, NewYorkNewYork.blahblah.com ... 내 첫 번째 지점을 다시 봅니다. 행운을 빌어 요 :)

+0

전체 아이디어는 여러 고객을 상대하는 단일 앱을 갖는 것이 었습니다. 각 고객은 자신의 데이터베이스를 가질 수 있습니다 (그리고 지금까지 훌륭하게 작동합니다 ...). 고객은 자신을 등록 할 수 있고 앱은 새로운 db를 생성합니다. 유일한 문제는 WebSecurity가 Membership.Provider에 저장된 정적 SimpleMembershipProvider를 사용한다는 것입니다. 나는 여러 멤버쉽을 다룰 수있는 커스텀 멤버쉽 제공자를 써야 할 것 같아요. – user3042320

관련 문제