c# - Azure AD - 仅使用 MS Graph SDK 为我自己的租户列出 schemaExtensions
问题描述
我正在研究可怕的 MS Docs,同时弄清楚如何创建和列出为我自己的租户创建的架构扩展。
MS Docs 提供了如何通过 MS Graph SDK 列出架构扩展的示例,但是结果返回来自其他开发人员和应用程序的扩展。MS 说明实际上确实建议以下内容:
注意:该列表还将包含由其他租户的其他开发人员创建的架构扩展定义(标记为可用)。这与仅返回特定于租户的数据的其他 API 不同。基于架构扩展定义创建的扩展数据是特定于租户的,并且只能由明确授予权限的应用访问。
首先,我到底为什么要列出其他人创建的扩展程序?我只想列出为我自己的应用程序/租户创建的扩展,但不明白如何执行此操作?我找不到 Graph SDK 的示例,它显示了如何仅为我自己创建的扩展返回结果。
到目前为止,我正在使用上述链接中的 MS 示例,其中一个通用的结果列表结果从每个人和他的狗返回了超过 100 个不同的扩展名!
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var schemaExtensions = await graphClient.SchemaExtensions
.Request()
//.Filter("id eq 'graphlearn_test'") // this would only work for returning one particular extension, I want to list all extensions created only for my own app/tenant
.GetAsync();
解决方案
在创建扩展期间,您可以指定作为模式扩展所有者的应用程序的owner
属性。appId
默认情况下,调用应用程序appId
将被设置为所有者。但是,可以在创建时提供该属性,以将所有者设置为appId
与调用应用程序不同的内容。设置后,此属性为只读且无法更改。
owner
然后,您可以按属性过滤扩展名。
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var schemaExtensions = await graphClient.SchemaExtensions
.Request()
.Filter("owner eq 'your_app_id'")
.GetAsync();
推荐阅读
- c# - 有没有办法让 c# 使用事件打开另一个程序?
- apache-kafka - Kafka Connect JDBC sink 连接器嵌套 avro
- c++ - 在 CppAD 中使用导数作为函数
- html - 将 HTML 输入值转换为 Swagger/OpenAPI 规范文件
- sap-ariba - 为什么 ReqLineItem.SupplierPartNumber 上似乎忽略了有效条件?
- vba - 范围和单元格的应用程序定义或对象定义错误
- redis - 从排序集中删除元素 - ZREM
- javascript - 当列表中的项目数超过屏幕高度时,列表项目不会从第一个开始显示
- r - 基于具有 r 值的唯一 ID 创建一个新列
- python - 如何修复使用 to_datetime 转换数据框中的时间列的错误?