2011-02-27 57 views
0

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

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

感谢

回答

1

您可以通过CRM Web服务执行WhoAmIRequest得到来自CRM数据库systemuserid,然后通过crmservice.Retrieve()得到systemuser记录。只要用户有任何CRM安全角色分配,WhoAmIRequest和阅读自己的systemuser记录应始终有效。

0

使用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(); 
    } } 

或Web服务(称为 '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()); 

    } 
    } 
相关问题