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