2012-03-30 4 views
0

심지어 이것이 가능한지 나는 모른다. 그러나 나는 물을 것이라고 생각했다.여러 사이트의 하위 도메인에 대해 하나의 코드베이스를 사용할 수 있습니까?

작은 CRUD 응용 프로그램을 만들고 있지만 여러 사이트가 있습니다. 각 사이트는 CRUD를 사용합니다. 응용 프로그램에는 일반적인 CRUD 방법과 스타일이 있지만 개별 사이트마다 다른 양식이 적용됩니다. 나는 특정 내용 (단지 다른 형식)에서만 변화하는 여러 CRUD 응용 프로그램을 만드는 것을 피하고자합니다.

mycrud.website1.com 
mycrud.website2.com 
mycrud.website3.com 

나는 각 개별 사이트 아무 문제에 대한 하위 도메인을 만들 수 있습니다

나는 이런 식으로 뭔가를 갖고 싶어. 그러나 모든 하위 도메인을 하나의 MVC 응용 프로그램 디렉토리로 지정하는 것이 가능합니까? 그리고 웹 사이트 1에서 사용자를 제한하여 웹 사이트 2 또는 웹 사이트 3 콘텐츠를 볼 수있는 방법에 대한 제안이 있으면 어떻게 할 수 있습니까? 그것은 "역할"이 (사용자 인증 후) 돌볼 수있는 것입니까?

감사합니다.

답변

0

먼저 - 쉬운 부분은 세 도메인 모두에 대해 하나의 웹 사이트를 보유하고 있습니다. DNS 항목을 사용하면 간단하게 그 작업을 수행 할 수 있습니다. 문제 없어. 세 도메인 모두 동일한 IP를 가리켜 야합니다.

내용면에서 여러 가지 방법으로 할 수 있습니다. 나는 당신의 역할에 대한 생각이 상당히 견고하다고 생각합니다. 또한 필요한 경우, site1과 site2의 콘텐츠를 보는 주어진 사용자의 가능성을 열어줍니다.

사용자를 강제로 인증하지 않으려면 다른 옵션을 찾아야합니다. CRUD 논리 및 데이터 액세스 논리를 별도의 라이브러리로 래핑하고 IIS의 세 가지 다른 사이트에서 사용할 수 있습니다. 하나의 사이트가 있고 요청 URL을 기반으로 콘텐츠를 표시 할 수 있습니다. 다른 옵션도 많이 있습니다.

+0

팁 주셔서 감사합니다. 나는 당신의 마지막 단락을 파헤 치고있다. 내가 궁금해하는 것에 부딪혔다. 내가하고 싶은 라이트 - CRUD가 있지만, 그것을 메인 CRUD에 넣고 인증을 요구할 수밖에 없다고 생각하고 있었다. 사용자가 요청 URL을 기반으로 콘텐츠를 인증/표시하도록 강요하지 않는 방법에 대한 제안/링크가 있습니까? – REMESQ

+0

URL은 요청 개체 아래의 컨트롤러에서 사용할 수 있습니다. 이것이 MVC 프레임 워크의 일부입니다. 나는 기본 컨트롤러를 설정하여 URL을 스니핑하고 CurrentSite (또는 이와 비슷한)라는 속성을 설정하는 것이 좋습니다. 그런 다음 컨트롤러를 변경하여 기본 컨트롤러에서 상속받습니다. (기본 컨트롤러는 컨트롤러에서 상속해야합니다).그런 다음 컨트롤러는 속성에 대한 액세스 권한을 가지며 속성을 기반으로 콘텐츠를 표시 할 수 있습니다. – Trent

+0

이 게시물에는 기본 컨트롤러 설정 예제가 포함되어 있습니다 (비록 그가 국제화를 위해 수행하고 있지만). http://afana.me/post/aspnet-mvc-internationalization.aspx – Trent

1

MVC뿐만 아니라이 작업을 수행하는 많은 웹 사이트가 있습니다. 일부 콘텐츠 팜에서는 * .mydomain.com을 단일 IP로 지정하고 IIS에서 와일드 카드 매핑을 사용합니다.

거기에서 애플리케이션은 URL을보고 무엇이해야하는지 결정해야합니다. 일부 CMS 시스템은 도메인을 키로 사용하여로드 할 페이지를 결정하는 방식으로이 방식으로 작동합니다.

저는 단일 클라이언트 응용 프로그램에서 모든 클라이언트를 호스팅 할 수있는 개인 레이블 가능한 SAS 응용 프로그램 (소프트웨어 서비스)을 만들었습니다. 일부 클라이언트는 페이지 또는 기능을 사용자 정의합니다. 우리는 필요할 때마다 컨트롤러 또는 뷰를 오버 라이드하는 각 클라이언트에 대한 맞춤 플러그인을 생성하여이를 처리 할 수 ​​있습니다.

모든 클라이언트는 공통 코드 기반을 공유하며 각 클라이언트 사용자 정의 테마/템플리트는 제외하고 동일합니다. 클라이언트가 우리에게 하나의 기능을 사용자 정의 할 때만 플러그인 DLL을 빌드해야합니다. 이제는 고급 기능이므로 코드 기반을 크게 수정해야하지만 결국 응용 프로그램에 필요한 경우 100 % 가능합니다.

관련 문제