Dynamics 365 Web Api 检查用户是否具有某个安全角色

   用户和安全角色的关系是N:N,所以要查询用户是否拥有某个安全角色即去查找对应的中间表取值即可,那web api如何来查询N:N关系。

   先看下查询的xml,这里的entity name即是实体关系名称

    var roleXml = "<fetch no-lock='true' output-format='xml-platform'>\
                      <entity name='systemuserroles'>\
                        <attribute name='systemuserid'/>\
                        <link-entity name='role' from='roleid' to ='roleid'>\
                          <filter type='and'>\
                            <condition attribute='name' operator='like' value='%审批%'></condition>\
                          </filter>\
                        </link-entity>\
                        <filter type='and'>\
                          <condition attribute='systemuserid' operator='eq' value='" + userId + "'></condition>\
                    </filter></entity></fetch>";

  但在发起request时的entityName却是systemuserrolescollection,这个你可以在元数据列表中查询到,元数据地址如下,对应到你自己的系统

https://org.domain.com:446/api/data/v8.2/$metadata

var userRole = execFecthXml('systemuserrolescollection', roleXml);
function execFecthXml(entityName, fetchXml) {

    var fetchStr = this.getWebAPIUrl() + entityName + "?fetchXml=" + fetchXml;
    var req = CRMSdk.ajax.getXHR();
    req.open("GET", encodeURI(fetchStr), false);
    req.setRequestHeader("Accept", "application/json");
    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    req.setRequestHeader("OData-MaxVersion", "4.0");
    req.setRequestHeader("OData-Version", "4.0");
    req.setRequestHeader("Prefer", "odata.include-annotations=\"OData.Community.Display.V1.FormattedValue\"");

    req.send();

    if (req.status == 200)
        return JSON.parse(req.responseText).value;
    else
        throw new Error(JSON.parse(req.responseText).error.message);

}

Dynamics 365 WebApi 是一种用于与 Dynamics 365 应用程序进行交互的 RESTful API。通过 WebApi,开发人员可以使用 HTTP 请求与 Dynamics 365 中的实体进行交互,包括创建、更新、删除和检索等操作。 以下是一些常见的 Dynamics 365 WebApi 的用法和功能: 1. 认证和授权:在使用 WebApi 之前,需要进行身份验证和授权。可以使用 Azure Active Directory (AAD) 或其他支持 OAuth 2.0 的身份验证提供程序进行身份验证,并获取访问令牌用于访问 Dynamics 365。 2. 实体操作:使用 WebApi 可以对 Dynamics 365 中的实体进行各种操作,如创建、更新、删除和检索。可以使用 HTTP 请求(如 POST、PUT、DELETE 和 GET)来执行这些操作,并通过请求的 URL 和有效载荷指定要操作的实体和属性。 3. 查询和筛选:WebApi 支持使用 OData 查询语言来执行高级查询和筛选操作。可以使用查询字符串参数来指定要检索的实体类型、要筛选的属性、排序方式、过滤条件等。 4. 关联和导航属性:Dynamics 365 中的实体之间可能存在关联关系,WebApi 允许通过关联属性和导航属性来处理这些关系。可以使用关联属性来创建、更新和删除关联记录,使用导航属性来检索关联记录。 5. 批量操作:WebApi 支持批量操作,可以在单个 HTTP 请求中执行多个操作。可以将多个实体的创建、更新和删除操作组合到一个批处理请求中,以提高性能和减少网络延迟。 总的来说,Dynamics 365 WebApi 提供了一个强大且灵活的方式来与 Dynamics 365 应用程序进行集成和操作数据。开发人员可以根据业务需求使用 WebApi 来构建自定义的应用程序、集成系统或扩展现有功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值