2009-12-23 6 views
1

그래서 우리는 웹 응용 프로그램을 만들고 엔터티 프레임 워크를 사용합니다. 우리가 원하는 것은 우리가 DB에 접근 할 때 현재 사용자를 사칭하는 것입니다. 우리는 웹 설정에서 가장 (impersonation) 설정에 관심이 없습니다.Entity Framework를 사용하여 사용자 가장

이상적으로 다음과 같이 사용 : http://geekswithblogs.net/jkurtz/archive/2007/08/27/114992.aspx 데이터에 액세스하려고합니다.

업데이트 :이 코드를 추상화하는 방법을 찾고 있으므로 모든 저장소 함수 호출에이 코드를 추가 할 필요가 없습니다.

답변

2

신뢰할 수있는 연결을 사용하기 위해 EF 연결 문자열을 설정해야합니다.

web.config에 가장 (impersonation)을 설정할 필요는 없지만 Windows 인증을 사용해야합니다.

은 그럼 그냥 이렇게 :

using (((WindowsIdentity)HttpContext.Current.User.Identity).Impersonate()) 
using (var dbContext = new MyEntityFrameworkContainer()) 
{ 
    ... 
} 

사용하여 문장의 괄호 안에 코드를 인증 된 사용자로 실행됩니다.

+0

좋아요, 게시 한 링크와 비슷하지만 모든 저장소 기능에서이를 선언 할 필요가없는 EF 이벤트 (또는 어딘가에)를 추상화하는 방법을 찾고 있습니다. – RailRhoad

+0

아마도 가장 좋은 생각은 아닙니다. 시스템 ID로 쿼리를 수행하려면 어떻게됩니까? 나는 분명히 선택을 선택하지 말고 옵트 아웃으로 유지할 것입니다. –

+0

Azure SQL 데이터베이스에 대한 새로운 Active Directory 통합 인증이 작동하는지 궁금합니다. 실제로 내가하고 싶은 것은 SQL Server 인증 로그인을 가장하는 것입니다. – CalvinDale

관련 문제