2010-08-01 2 views
2

WCF 프로젝트는 데스크톱 응용 프로그램 (WPF)의 모든 논리로 구성되며 WCF 셀프 호스트로 VS 2008에서 실행할 때 잘 작동합니다. 데스크톱 응용 프로그램은 WCF에서 제공하는 서비스를 사용하며 사용자는 자신의 사용자 이름과 암호를 사용하여 응용 프로그램에 로그인해야합니다. WCF는 LINQ를 통해 SQL Server 2008 데이터베이스에 연결되며 사용자 계정 정보도 해당 데이터베이스에 저장됩니다.IIS 7의 WCF 프로젝트 호스트 이후에 올바른 데이터베이스를 인식하지 못했습니다.

그러나 IIS 7에서 WCF를 호스팅 한 후 데스크톱 응용 프로그램에 로그인하면 사용자 이름과 암호가 일치하지 않는다고 표시됩니다. 그러나 IIS 7에서 WCF를 호스팅하기 전에 자체 호스트가있는 VS 2008에서 완벽하게 작동했습니다.이 동작의 이유는 무엇입니까?

나 SQL Server 데이터베이스에 대해이 문제를

연결 문자열을 해결하는 데 도움이하십시오 : 당신은 통합 보안을 사용하고

<add name="iSponsor.Data.Properties.Settings.test_dbConnectionString" 
    connectionString="Data Source=LMR-HERO\SQLSP1INS;Initial Catalog=test_db;Integrated Security=True" 
    providerName="System.Data.SqlClient" /> 
+1

WCF 서비스에서 SQL Server에 연결하는 방법을 보여주세요 !! 어떤 연결 문자열을 사용하고 있습니까? providerName = "System.Data.SqlClient"/ –

+0

답변

1

. 즉, WCF 서비스는 IIS 응용 프로그램 풀 ID를 사용하여 데이터베이스에 로그인하려고 시도합니다.

  1. 당신은 하나 필요에

    부여 (보다 편리하게 또는 로컬 그룹 IIS_IUSRS) 기본 응용 프로그램 풀 사용자 데이터베이스를 액세스 할 수있는 권한 -에 대한주의 깊게 잠긴 액세스하지만, 그러나 매우 어려운 필요 공격자가이 사용자로 가장 할 수 있습니다.
  2. 데이터베이스에 대한 액세스 권한이있는 로컬 또는 도메인 사용자로 응용 프로그램 풀을 실행하십시오. 다시이 사용자를 조심스럽게 잠글 필요가 있습니다.
  3. SQL 서버 인증 (사용자 이름/암호) 설정했지만 공격하기가 가장 쉽다.
+0

+1 잘 말했습니다 - 필요한 모든 정보가 있습니다! :-) –

+0

예! 그것은 효과가 있었다. 나는 Rup이 말했듯이 첫 번째 접근법을 따르고 'IIS APPPOOL \ DefaultAppPool'이라는 SQL 서버 로그인을위한 새로운 사용자를 추가합니다. 그런 다음 해당 사용자에게 관련 권한을 부여합니다. thx를 지원합니다. –

관련 문제