2014-01-26 3 views
3

이 질문은 반복 될 수 있지만 좋은 해결책을 찾을 수 없습니다.Entity Framework 6.0 + 암호화 연결 문자열

우리의 프로젝트는 EF 6.0 & C# .NET을 사용하여 .NET 4.0 프로젝트가없이 잘 작동 2012

위 그리고 마지막으로 SQL 서버 대상. 그러나 EF 연결 문자열과이 문자열이 저장되는 방식에 대한 쿼리는 거의 없습니다.

  1. app.config에 저장된 암호화 된 연결 문자열을 읽는 방법을 EF의 context.cs 파일에서 읽으십시오.
  2. 암호화 된 연결 문자열을 읽으려면 다음 코드를 추가했지만 새로운 저장 프로 시저를 추가하지 않을 때까지만 작동합니다. 우리는 EF 모델에 새 저장 프로 시저 또는 함수를 추가하면

    public MCMS_II_LogEntities() 
        // : base("name=MCMS_II_LogEntities") //Original 
        :base(GetConnectionString()) 
        { 
        } 
    
    public static string GetConnectionString() 
    { 
        string connString = new System.Data.EntityClient.EntityConnectionStringBuilder 
        { 
         Metadata = "res://*", 
         Provider = "System.Data.SqlClient", 
         ProviderConnectionString = new System.Data.SqlClient.SqlConnectionStringBuilder 
         { 
          InitialCatalog = "<Catalog Name>", 
          DataSource = ConfigurationManager.AppSettings["DataSourceAddress"].ToString(), 
          IntegratedSecurity = false, 
          MultipleActiveResultSets = true, 
          UserID = "<LOGIN ID>",     // User ID such as "sa" 
          Password ="<PASSWORD>",    // hide the password 
         }.ConnectionString 
        }.ConnectionString; 
        return String.Format(connString); 
    } 
    
  3. , 위의 추가 코딩이 제거됩니다.

쿼리

  1. 이를 달성 할 수있는 가장 좋은 방법은 무엇입니까?
  2. 이 문제를 해결하는 방법.
+0

죄송합니다. 이해가 가지 않습니다. 무엇이 저장 프로 시저 및 함수의 역할입니까? –

+0

@GertArnold 여기에는 SP 및 UDF의 특정 역할이 없습니다. 하지만 위의 코드를 추가 한 다음 EF의 라이브러리에 다른 새로운 SP 또는 UDF 세트를 포함하면 위의 코드 부분이 사라지고 다시 추가해야합니다. – aioracle

+0

그런 다음 다른 곳에 넣으십시오. public static 메쏘드는 어느 곳에서나 채워질 수 있으며, 일부 정적 유틸리티 클래스에서 채워질 수 있습니다. –

답변

-1

개발 과정에서 DB 연결 문자열을 인코딩/암호화하면 안됩니다. 엉덩이에 통증이 있습니다. 개발 중에는 배포/승격 단계에서 암호화를 수행해야합니다.

암호화 한 후 연결 문자열을 테스트하십시오. 코드를 QA 또는 PROD로 이동할 준비가되면 암호화하십시오.

+0

인코딩/암호화의 일부 기능을 테스트 중이므로이 연습을해야합니다. 우리는 테스트하는 동안 좋은 접근법이 아니라는 것을 이해합니다. 그러나 연결 문자열 (즉, 암호 해독)이 코드에 올바르게 수신되면 응용 프로그램의 모든 기능을 검사해야하기 때문에이 단계에서는 선택의 여지가 없습니다. – aioracle

+0

쓸데없는 대답으로 인해 투표가 중단되었습니다. –

관련 문제