Microsoft Dynamics 4.0自定义ASPX页面标识

时间:2011-02-27 13:22:56

标签: .net dynamics-crm dynamics-crm-4

从ISV目录中的自定义ASPX页面的代码中获取当前登录的MS Dynamics用户的身份的建议方法是什么?

执行此操作的方法必须与Dynamics是否使用AD / NTLM身份验证或其他身份验证机制无关,并且不得要求启用模拟或更改web.config。

由于

2 个答案:

答案 0 :(得分:1)

您可以通过CRM网络服务执行WhoAmIRequest从CRM数据库获取systemuserid,然后通过systemuser获取crmservice.Retrieve()记录。只要用户完全分配了任何CRM安全角色,WhoAmIRequest和对自己的systemuser记录的读取权限应该始终有效。

答案 1 :(得分:0)

将Xrm Context与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());

     }
  }