SPML Iterate request

Hello,

we are using the SPML provider for provisioning of different types of objectclasses.
Now we try to use the SPML search to find objects in ARS. This works find, but when I want to retrieve the next results via an iterate request, it fails. The SPML response is :"noSuchIdentifier".

When I use a browser it works, without any problems.

Does anyone had the same problem?

I tried some configuration on the IIS (e.g. session state), without effect.

Regards

BEN

  • Hi, 

    i have the same problem. I am getting: "noSuchIdentifier" and "Invalid iterator".

    Here is my code snipped.

    CIterateRequest iterateRequest = new CIterateRequest();

    iterateRequest.iterator = searchResponse.iterator; //use the iterator property from the previous search request 
    iterateRequest.returnData = "everything";
    iterateRequest.requestID = searchResponse.requestID;
    var iterateResponse = webService.iterate(iterateRequest);

     

    Does anybody have a working example? Or an idea why this is not working?

     

    ////////////////////////// FULL Snipped ///////////////////////////////

    //Create search request

    var request = new CSearchRequest();
    request.query = new CQuery();
    request.query.filter = new CQueryFilter();

    //Build up Filter
    List<object> filterObjects = new List<object>();
    filterObjects.Add(new equalityMatch { name = "objectClass", value = "user" });
    filterObjects.Add(new isActive());
    request.query.filter.Items = new[] {

    new and
    {
    Items = filterObjects.ToArray()
    }
    };
    request.query.basePsoID = new CPSOID1 { ID = _activeDirectoryConnection.Root };
    request.query.scope = "subTree";
    List<string> allADAttributes = ((ActiveDirectoryAttributes[])Enum.GetValues(typeof(ActiveDirectoryAttributes))).Select(c => c.ToString()).ToList();
    request.query.attributes = CreateAttributes(allADAttributes);
    request.returnData = "everything";

    // Create web service instance
    ActiveRolesSPMLProviderSoapClient webService = new ActiveRolesSPMLProviderSoapClient("Active Roles SPML ProviderSoap", _activeDirectoryConnection.ActiveRolesEndPoint);
    webService.ClientCredentials.UserName.UserName = _activeDirectoryConnection.Username;
    webService.ClientCredentials.UserName.Password = _activeDirectoryConnection.Password;

    // Send request and get response
    var searchResponse = webService.search(request);

    //Iterate  (searchResponse.iteratior is not null)
    CIterateRequest iterateRequest = new CIterateRequest();
    iterateRequest.iterator = searchResponse.iterator; //use the iterator property from the previous search request
    iterateRequest.returnData = "everything";
    iterateRequest.requestID = searchResponse.requestID;
    var iterateResponse = webService.iterate(iterateRequest);