2015-10-30 25 views
1

我有一個帖子|同步|沙盒|更新消息CRM插件CRM在線2015年,所有除RetrieveMultiple呼叫OrganizationService RetrieveMultiple請求期間拋出異常認證

我創建工作正常IOrganizationService

public static IOrganizationService GetOrganizationServiceByCurrentUser(this IServiceProvider serviceProvider) 
    { 
     var serviceFactory = serviceProvider.GetService<IOrganizationServiceFactory>(); 
     var context = serviceProvider.GetService<IPluginExecutionContext>(); 
     return serviceFactory.CreateOrganizationService(context.UserId); 
    } 

通話RetrieveMultiple

 Entity config = organizationService.RetrieveMultiple(new FetchExpression(CrmConstants.Query.AzureCofig)) 
              .Entities.FirstOrDefault(); 

以下錯誤後出現

在配置的 安全令牌服務上找不到認證端點用戶名!

我試過做同樣的通過單元測試和CrmConnection所有工作正常。看起來像插件執行權限有問題。任何想法?

+0

看起來與ADFS配置的問題:http://help.clickdimensions.com/the -authentication-endpoint-username-was-not-found-on-the-the-configured-secure-token-service-error-注意/ 包括有關部署/環境的信息將有助於診斷問題。 –

+1

如果您執行「organizationService.Retrieve(」systemuser「,context.InitiatingUserId,new ColumnSet(true))」,會發生什麼情況? 這應該會返回當前的用戶信息,如果有效的話,你的retrievemultiple有點奇怪,我認爲它看起來很有趣,但可能是周圍的代碼丟失:) –

+0

我已經解決了這個問題,它是一個錯誤:)該實體是一個自定義配置部分,所以我不得不在系統帳戶下調用'RetrieveMultiple' – GSerjo

回答

2

如果檢索你的系統帳戶下創建IOrganizationService任何配置的部分,而不是用戶上下文

public static IOrganizationService GetOrganizationServiceByCurrentUser(this IServiceProvider serviceProvider) 
    { 
     var serviceFactory = serviceProvider.GetService<IOrganizationServiceFactory>(); 
     return serviceFactory.CreateOrganizationService(null); 
    }