gpt4 book ai didi

azure-active-directory - 用户扩展上的随机访问被拒绝错误

转载 作者:行者123 更新时间:2023-12-04 08:40:24 25 4
gpt4 key购买 nike

在 Graph API 中使用扩展时:

graphUser = graphClient.Users.Request().AddAsync(graphUser).Result;

OpenTypeExtension newExtension = new OpenTypeExtension()
{
ExtensionName = "CustomName",
AdditionalData = new Dictionary<string, object>
{ { "CustomID", user.CustomID }
}
};

graphClient.Users[graphUser.UserPrincipalName]
.Extensions
.Request()
.AddAsync(newExtension)
.Wait();

我随机收到这些错误:
Code: AccessDenied
Message: Access Denied

有时它有效,有时它不起作用。我似乎无法找到相关性。
当我单步调试调试器中的代码时,如果我不间断地运行它,它会更频繁地工作。但是,如果我在两行之间添加 sleep (以考虑处理延迟),则无法解决问题。

应用程序拥有访问 API 所需的所有权限。

问题不仅仅在于 POST ,还要上 GET如下面的代码示例所示,这会导致相同的错误。

User user = graphClient.Users[userName]
.Request()
.GetAsync()
.Result;

user.Extensions = graphClient.Users[userName]
.Extensions
.Request()
.GetAsync()
.Result;

有没有人有这个问题的经验?提前致谢!

编辑:

我发现一旦错误开始显示,就需要删除用户。一个用户的错误不一定意味着另一个用户的错误。

编辑2:

我还在 GitHub 上将此作为问题发布.您可以在此处找到有关此问题的更多信息。它现在被标记为错误。

最佳答案

事实证明,用户主体名称是一个缓存引用。
由于我正在运行测试,这意味着大量重新创建相同的测试用户,因此引用 UPN 指向旧用户对象,从而导致拒绝访问错误。

这个问题可以通过使用对象的 ID 来避免,就像这样:

 graphClient.Users[graphUser.Id]
.Extensions
.Request()
.AddAsync(newExtension)
.Wait();

我相信团队会修复引用错误,但我当然不能代表他们说话。在任何一种情况下,我都建议使用 Id 属性来确定。

关于azure-active-directory - 用户扩展上的随机访问被拒绝错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46776605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com