1

从这个Microsoft 文档中,我们看到可以更新信任框架策略。无论如何,我找不到使用Microsoft Graph Client Beta SDK做同样事情的方法。

现在我有这个有效的代码,其中policyId = B2C_1A_TrustFrameworkExtensions

var policy = await graphServiceClient
                .TrustFramework.Policies[policyId]
                .Request()
                .GetAsync();

然后我想更新此政策的内容并致电:

await graphServiceClient
          .TrustFramework.Policies[policyId]
          .Request()
          .UpdateAsync(policy);

但是,我在 Microsoft Graph 返回的策略对象中看不到任何属性,我可以在其中传递修改后的策略 XML 内容。

在此处输入图像描述

我的问题是:可以使用 Microsoft Graph Beta 客户端完成吗?

4

1 回答 1

1

TrustFramework policiesMicrosoft Graph 中的 api 中的 blob 可用。请注意getputapi 中的 $value 参数。因此,通常的访问数据的方式将行不通。下面给出了如何读取和写入策略的示例代码

        var requestBuilder = graphServiceClient.TrustFramework.Policies[policyId];
            var url = requestBuilder.AppendSegmentToRequestUrl("$value");
            var builder = new TrustFrameworkPolicyContentRequestBuilder(url, graphServiceClient);

        // Read a policy
        using (var stream = await builder.Request().GetAsync())
        using (StreamReader sr = new StreamReader(stream))
        {
            var policyContent = sr.ReadToEnd();
            Console.WriteLine("Policy Read " +  policyContent);
        }

        string path = @"<FilePath>";

        // Write a policy. lets say path has the to be uploaded file content
        using (StreamReader sr = new StreamReader(path))
        using (var stream = await builder.Request().PutAsync(sr.BaseStream))
        using (StreamReader osr = new StreamReader(stream))
        {
            Console.WriteLine("Updated policy content" + osr.ReadToEnd());
        }
于 2019-12-02T22:17:41.913 回答