Okta 'request body was not well-formed' 在非常简单的 属性 更新期间

Okta 'request body was not well-formed' during very simple property update

我正在从我的 .Net 后端调用 okta API。它在创建用户时工作正常(下面代码片段的第一部分),所以我知道令牌是正确的等等,我可以确认新用户存在。

随后,我还更新了一个 属性 我已添加到名为 'Site' 的用户。当试图为这个 属性 分配一个值时,它会在 'UpdateAsync' 行上抛出一个异常,表明请求正文的格式不正确

            var user = await _oktaClient.Users.CreateUserAsync(new CreateUserWithPasswordOptions
            {
                Profile = new UserProfile
                {
                    FirstName = value.FirstName,
                    LastName = value.Surname,
                    Email = value.Email,
                    Login = value.Email,
                },
                Password = value.Password,
                Activate = true,
            });

            var newUser = await _oktaClient.Users.GetUserAsync(user.Id);

            newUser["site"] = Site;
            await newUser.UpdateAsync(); // This line throws!

注意:我并不总是这样做,我之前分配给 user 对象,然后在我更新用户 'site' 后调用 UpdateAsync()目的。这是一种替代方法,因为我正在尝试不同的事情(即再次从 API 获取用户)。这两种方法都不起作用。

非常奇怪的是这一直有效,我 100% 确定这一点。我正在查看我的 okta 用户目录 'as we speak',并且有大量用户,他们的网站 属性 已填充。以前没有问题。我相信 okta 的末端一定已经更新了一些东西,现在出于某种原因不喜欢我的请求,但无论哪种情况,我都需要一个理想的解决方法。

我可以确认 Site 既不是 null 也不是空的,它只是一个字符串。

更新

我刚刚在 okta 的 IResource 上发现了一个 SetProperty 扩展,在尝试更新用户之前调用它会导致同样的问题。

非常感谢对此的任何帮助。

看起来自定义属性不能再分配给用户对象本身,但需要在用户配置文件中:newUser.Profile["site"] = Site;