1

내 CRM 2013 데이터베이스 용으로 svcutil.exe를 사용하여 XrmServiceContext을 만들었습니다.이 작업은 훌륭하게 진행되었으며 내 MVC4 응용 프로그램에서 CRM에서 데이터를 검색 할 수 있습니다.다른 사용자/XrmServiceContext.CallerID 대신에 행위

내 웹 사이트 ADFS2를 사용하여 SSO를 실행하고 나는 사용하여 액세스하는 사용자 ID를 검색 할 수 있습니다

Microsoft.IdentityModel.Claims.IClaimsIdentity ci = Thread.CurrentPrincipal.Identity as Microsoft.IdentityModel.Claims.IClaimsIdentity; 

var accountNameClaim = ci.Claims.Where(x => x.ClaimType.ToLower().EndsWith("windowsaccountname")).FirstOrDefault(); 

이 나에게 내가 검색 할 수 있습니다이 사용

string accountNameClaim = "[email protected]"

의 라인을 따라 뭔가를 제공합니다 사용자 서식 CRM 2013 XrmServiceContext

이제 XRMServiceContext를 사용하여 CRM에 대한 모든 후속 쿼리에 대해이 사용자를 가장하거나/가장하는 방법에 대해 궁금합니다.

이 페이지 http://msdn.microsoft.com/en-us/library/gg309629.aspx 내가 내 XRMServiceContext 내부 어딘가에 포함되어있는 내가 추측하고있어 OrganizationServiceContextCallerID라는 변수를 설정해야합니다 제안 가이드가 있습니다 ..하지만 난 그것을 찾을 수 없습니다.

+0

어떻게해야할까요? – link64

답변

0

CallerId 속성은 OrganizationServiceContext에 있지만 는 문맥에 의해을 사용하는 OrganizationServiceProxy에없는 : 당신이 컨텍스트를 구성 할 때

, 당신이 조직 서비스 intance 전달된다. 그 이전에, 당신은 설정해야 CallerId :

organizationService.CallerId = user.Id; 
var _serviceContext = new OrganizationServiceContext(organizationService); 

CallerId이 아닌 인터페이스 IOrganiaztionService에서 OrganizationServiceProxy 유형에서만 사용할 수 있습니다. 어떻게 조직 서비스를 얻는 지 알 수는 없지만 그것이 OrganizationServiceProxy인지 확인하십시오.