有没有人在 .Net 中有任何示例可以根据用户的状态(即事件)和以字符串开头的名字/姓氏搜索/过滤用户?
下面的代码片段无效。
var filter = new FilterBuilder().Where(Core.Filters.User.Status)
.EqualTo(Core.Models.UserStatus.Active).And(new FilterBuilder().
Where(Core.Filters.User.LastName).StartsWith("J"));
foreach (Core.Models.User user in usersClient.GetFilteredEnumerator(filter))
{
var test = user.Profile.LastName;
var test2 = user.Profile.MobilePhone;
// Do something with each user
}
错误:
ErrorCode: E0000031
ErrorID: oaeW2PeSC6_Tqy8exTTQSg7gg
ErrorSummary: Invalid search criteria.
ExceptionMessage: Exception of type 'Okta.Core.OktaException' was thrown.
Stack Trace:
at Okta.Core.OktaExceptionResolver.ParseHttpResponse(HttpResponseMessage httpResponseMessage)
at Okta.Core.OktaHttpClient.Execute(HttpRequestType requestType, Uri uri, String relativeUri, String content, Int32 waitMillis, Int32 retryCount, Boolean bAddAuthorizationHeader)
at Okta.Core.Clients.ApiClient`1.GetList(Uri nextPage, Int32 pageSize, FilterBuilder filter, SearchType searchType, String query, String after, Nullable`1 startDate)
at Okta.Core.Clients.ApiClient`1.GetFilteredEnumerator(FilterBuilder filter, SearchType searchType, Int32 pageSize, String query, String after, Nullable`1 startDate)
at Okta.Web.MvcApplication.Application_AuthenticateRequest(Object sender, EventArgs e) in C:\PoC\Okta\Okta.Web\Global.asax.cs:line 60
at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
我应该更改什么才能使其正常工作?
最佳答案
您遇到此问题的原因是因为 StartsWith 运算符仅适用于我们的“搜索”功能(http://developer.okta.com/docs/api/resources/users.html#list-users-with-search),而不适用于我们的“过滤器”功能(http://developer.okta.com/docs/api/resources/users.html#list-users-with-a-filter),后者是在C# SDK。
请联系 Okta 的支持团队 http://support.okta.com如果您想在您的 Okta 组织中启用“搜索”功能。
关于c# - Okta SDK 过滤具有活跃状态并使用 StartsWith 和 Contains 关键字的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37315622/