从自定义页面访问登录的 CRM 用户
accessing the logged in CRM user from custom page
我们有 Dynamics CRM 和一个从功能区加载的网络表单,基本上在 iframe 中。
我们如何获得登录用户?在右上角,是我通过 Active Directory 登录的名字和图像。但是,如果我做类似的事情:
var UserID = window.parent.Xrm.Page.context.getUserId();
或在 C# 中:
UserPrincipal user = UserPrincipal.Current;
lblUser.Text = user.SamAccountName;
然后我们将获得 CRM 配置使用的通用用户。
如果我右键单击整个表单并转到 "View Source",我可以看到:
var USER_NAME = 'Rodney Ellis';
在 Chrome 的开发者工具中,我可以从控制台 运行 执行此操作,然后我的名字会出现:
alert(USER_NAME);
但是当我尝试从代码中的 javascript 访问它时,它说找不到它:
未捕获的引用错误:USER_NAME 未定义
如何通过 c# 或 js 从 aspx 网络表单中获取用户名?被阻止的跨端脚本已经停止了许多简单的方法,因此我们正在寻找解决方法。
下面的代码应该可以满足您的需求。 Read more
Xrm.Page.context.getUserName();
但是基于popup或者inline embedded iframe,你有append in front
window.parent.Xrm.Page.context.getUserName();
window.opener.Xrm.Page.context.getUserName();
有史以来最伟大的黑客之一......我们通过将另一个 iFrame 嵌入到网络资源中来解决这个问题!
因此 Web 资源可以调用 Xrm.Page.context.getUserName(),然后将其连接到我们随后传递到 iFrame 中的查询字符串。因为 CRM 认为 iframe 只是一个控件,所以它允许在其中执行所有 webform 命令并且不会给出任何 500 错误。
我们有 Dynamics CRM 和一个从功能区加载的网络表单,基本上在 iframe 中。
我们如何获得登录用户?在右上角,是我通过 Active Directory 登录的名字和图像。但是,如果我做类似的事情:
var UserID = window.parent.Xrm.Page.context.getUserId();
或在 C# 中:
UserPrincipal user = UserPrincipal.Current;
lblUser.Text = user.SamAccountName;
然后我们将获得 CRM 配置使用的通用用户。
如果我右键单击整个表单并转到 "View Source",我可以看到:
var USER_NAME = 'Rodney Ellis';
在 Chrome 的开发者工具中,我可以从控制台 运行 执行此操作,然后我的名字会出现:
alert(USER_NAME);
但是当我尝试从代码中的 javascript 访问它时,它说找不到它: 未捕获的引用错误:USER_NAME 未定义
如何通过 c# 或 js 从 aspx 网络表单中获取用户名?被阻止的跨端脚本已经停止了许多简单的方法,因此我们正在寻找解决方法。
下面的代码应该可以满足您的需求。 Read more
Xrm.Page.context.getUserName();
但是基于popup或者inline embedded iframe,你有append in front
window.parent.Xrm.Page.context.getUserName();
window.opener.Xrm.Page.context.getUserName();
有史以来最伟大的黑客之一......我们通过将另一个 iFrame 嵌入到网络资源中来解决这个问题!
因此 Web 资源可以调用 Xrm.Page.context.getUserName(),然后将其连接到我们随后传递到 iFrame 中的查询字符串。因为 CRM 认为 iframe 只是一个控件,所以它允许在其中执行所有 webform 命令并且不会给出任何 500 错误。