1

제목이 다소 혼란 스럽기 때문에 설명해 드리겠습니다. :)Entity Framework 및 Membership에 대한 Github에서 connectionString을 숨기는 방법은 나중에 AppHarbor에서 사용됩니까?

공용 저장소 @ github를 유지 관리하는 MVC 3.0 프로젝트가 있고 Project에서 Entity Framework와 멤버쉽 공급자 (두 개의 별도 connectionString)를 사용한다고합니다.

내가 겪고있는 문제는 MS SQL 데이터베이스 용 Sequilizer의 "Alias"속성이 빌드시 교체 될 connectionString 값을 하나만 지정하도록합시다. 프로그래밍 방식으로 web.config를 수정할 수 없기 때문에 (공용 github repo에서 중요한 데이터를 World에 공개하기 때문에 web.config 변환을 적용 할 수 없습니다), 더 많이 사용하려는 항목을 선택해야합니다. -> Entity 또는 Membership (다른 솔루션은 내 connectionString 중 하나를 취약하게 만들 것입니다).

빌드 타임에 connectionStringName을 알기 위해 MembershipProvider가 필요하기 때문에 (모든 것이 web.config에 지정되어 있습니다.)이 모든 작업을 수행하는 방법을 놓치지 않았습니다.

도움을 주시면 감사하겠습니다.

환호

+0

소스 제어를 원하지만 github에서 일반에게 공개하는 것이 걱정되면 bitbucket을 비공개 (무료입니다!)로 사용하면 초대 한 사람 만 저장소에 액세스 할 수 있습니다. – CallumVass

+0

아마도 멤버쉽 항목을 사용하지 않는 것은 회원님이 설명하는 것과 같은 문제가 발생하기 쉽기 때문입니다. – friism

답변

2

오케이 여러분, 나는 모든 것을 다 설정했다고 생각합니다.

내가 한 것은 구성 변수 ("EntityFramework")를 사용하기 위해 ObjectContext 기본 생성자 ("MyProjectEntities.Designer.cs"에서)를 오버로드하는 동안 멤버쉽 항목을 제공하는 정상적인 연결 문자열에만 별칭을 사용했습니다. ") 내가 그렇게 같은 엔티티 프레임 워크를 ConnectionString을 보유하고 AppHarbor에 설정하는 것이 :

public MyProjectEntities() : base(ConfigurationManager.AppSettings["EntityFramework"].ToString(), "eTestHubEntities") 
    { 
     this.ContextOptions.LazyLoadingEnabled = true; 
     OnContextCreated(); 
    } 

는 테스트 나는이 일을 원하는대로 작동합니다. :)