Персонализированная страница ASPX для Microsoft Dynamics 4.0 - PullRequest
0 голосов
/ 27 февраля 2011

Каков рекомендуемый подход для получения идентификатора пользователя, вошедшего в систему в настоящее время в MS Dynamics, из кода для пользовательской страницы ASPX, которая находится в каталоге ISV?

Подход для этого должен быть независимым отиспользует ли Dynamics аутентификацию AD / NTLM или другие механизмы аутентификации и не требует включения олицетворения или изменения файла web.config.

Спасибо

Ответы [ 2 ]

1 голос
/ 01 марта 2011

Вы можете получить systemuserid из базы данных CRM, выполнив WhoAmIRequest через веб-сервис CRM, а затем получить запись systemuser через crmservice.Retrieve().Если пользователю назначены какие-либо роли безопасности CRM, WhoAmIRequest и доступ на чтение к собственной записи systemuser всегда должны работать.

0 голосов
/ 16 апреля 2011

с использованием контекста Xrm с SDK

 public Xrm.systemuser CurrentUser   {
     get
     {
        var context = new XrmDataContext();

        var reponse = context.UsingService(
               service => (WhoAmIResponse)service.Execute(new WhoAmIRequest()));


        return (from user in context.systemusers
                where user.systemuserid == reponse.UserId
                select user).Single();
     }   }

или с веб-сервисами (здесь называемыми «crm»)

  public systemuser CurrentUser
  {
     get
     {
        WhoAmIRequest userRequest = new WhoAmIRequest();
        WhoAmIResponse current = (WhoAmIResponse)crm.Execute(userRequest);
        return (systemuser)crm.Retrieve(EntityName.systemuser.ToString(), current.UserId, new AllColumns());

     }
  }
...