从 C# MVC 应用程序调用 Okta API 时收到错误请求

Receiving BAD REQUEST when called Okta API from C# MVC application

我正在创建一个示例应用程序(即概念证明),用于使用 Okta 平台创建用户。我正在使用 API 调用,但当 运行 将 C# MVC 应用程序从 Visual Studio 2013 更新 5 连接到我的 Okta 开发实例时,我一直收到 "BAD REQUEST"。我想知道问题是否出在 CORS 和本地应用程序之间?

这是我目前的情况:

这是用于创建和序列化(使用 Json.NET)C# 类:

的代码
            RootObject root = new RootObject();
            root.profile = new Profile();
            root.profile.firstName = model.FirstName;
            root.profile.lastName = model.LastName;
            root.profile.email = model.Email;
            root.profile.login = model.UserName;

            root.credentials = new Credentials();
            root.credentials.password = new OktaTest.Models.Password();
            root.credentials.password.value = model.Password;

            string rootJson = JsonConvert.SerializeObject(root);

这会产生以下 JSON(这包含虚拟数据):

{"profile":{"firstName":"Test","lastName":"User","email":"user@test.org","login":"user@test.org"},"credentials":{"password":{"value":"Testing123"}}}

这是调用 POST 的代码行:

HttpResponseMessage responseMessage = await client.PostAsJsonAsync(url, rootJson);

这是设置接受的行 header:

client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

由于我能够在 Postman 中使用 JSON,并且由于 JSON 在使用 JSONLint 时有效,我认为问题在于不是 JSON 而是我的本地应用程序和开发环境之间的安全问题。此测试是否应该仅来自托管应用程序 运行,以便可以在 Okta 管理环境的 CORS 部分中显式分配站点?在这一点上,我仍在研究和试验,我不确定我错过了什么,但我想我已经接近了。

如有任何建议或指导,我们将不胜感激!谢谢!

我推荐你使用Okta C# SDK which you can add to your application using the Okta.Core.Client NuGet package

示例控制台应用程序展示了如何使用它 create Okta users: https://github.com/oktadeveloper/okta-sdk-dotnet-console-user-create

希望对您有所帮助!