我正在从.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
对象,然后在更新用户对象上的“站点”后调用UpdateAsync()
。这是一种替代方法,因为我正在尝试不同的操作(即再次从API获取用户)。两种方法均无效。
非常奇怪的是,它一直在起作用,我对此有100%的把握。我正在“按我们的说法”浏览我的okta用户目录,并且有大量的用户,所有用户的网站属性均已填充。以前没有问题。我相信某些事情必须进行更新okta的结尾,由于某种原因,现在由于某些原因我不喜欢我的请求,但是无论哪种情况,我都需要一种解决方法。
我可以确认Site
既不为null也不为空,它只是一个字符串。
我刚刚在okta的SetProperty
上发现了一个IResource
扩展名,在尝试更新用户之前调用此扩展名会导致相同的问题。
对此有任何帮助,不胜感激。
看上去自定义属性无法再分配给User对象本身,但需要在用户个人资料中:newUser.Profile["site"] = Site;