对于位于ISV目录中的自定义ASPX页面,从后台代码获取当前登录的MS Dynamics用户身份的建议方法是什么?Microsoft Dynamics 4.0自定义ASPX页面身份
这样做的方法必须与Dynamics是否使用AD/NTLM身份验证或其他身份验证机制无关,并且不得要求启用模拟或更改web.config。
感谢
对于位于ISV目录中的自定义ASPX页面,从后台代码获取当前登录的MS Dynamics用户身份的建议方法是什么?Microsoft Dynamics 4.0自定义ASPX页面身份
这样做的方法必须与Dynamics是否使用AD/NTLM身份验证或其他身份验证机制无关,并且不得要求启用模拟或更改web.config。
感谢
您可以通过CRM Web服务执行WhoAmIRequest得到来自CRM数据库systemuserid
,然后通过crmservice.Retrieve()
得到systemuser
记录。只要用户有任何CRM安全角色分配,WhoAmIRequest
和阅读自己的systemuser
记录应始终有效。
使用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());
}
}