从ISV目录中的自定义ASPX页面的代码中获取当前登录的MS Dynamics用户的身份的建议方法是什么?
执行此操作的方法必须与Dynamics是否使用AD / NTLM身份验证或其他身份验证机制无关,并且不得要求启用模拟或更改web.config。
由于
答案 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());
}
}