3.2.6.7.7 User

 The MQDS client MUST perform the following actions:

  1. The arguments supplied to the Write Directory event MUST meet the following conditions. If any of these conditions are violated, processing of the event MUST end. rStatus MUST be set to DirectoryOperationResult.GenericError.

    • The iDirectoryObject.Identifier attribute MUST be populated.

  2. If iAttributeList was not provided as an argument, then an iAttributeList MUST be constructed that MUST contain the names of all User directory attributes listed in [MS-MQDMPR] section 3.1.1.15.

  3. The aProp and apVar arguments for the S_DSSetPropsGuid method (section 3.1.4.10) MUST be computed. For each property identifier listed in the following table, if the corresponding User attribute name appears in iAttributeList and that attribute is populated in iDirectoryObject, add the property identifier to aProp, add a PROPVARIANT to apVar that is set to the correct type for the property and contains in the correct field the computed value for the property, as shown in the following table. User attribute names that appear in iAttributeList but do not appear in the following table or subsections referenced by the table MUST be ignored.

    Property identifier

    Property value computation

    PROPID_U_SIGN_CERT ([MS-MQMQ] section 2.3.6.4)

    MQUSERSIGNCERTS structure ([MS-MQMQ] section 2.2.21) structure copied from iDirectoryObject.Certificates.

    PROPID_U_DIGEST

    List of GUIDs copied from iDirectoryObject.CertificateDigestList.

  4. Other input arguments for the S_DSSetPropsGuid method MUST be computed:

    1. dwObjectType MUST be MQDS_CN.

    2. Other arguments MUST be set up as described in section 3.1.4.10.

  5. The iDirectoryObject.Identifier attribute MUST be populated, and the S_DSSetPropsGuid method MUST be called with pGuid set to point to a buffer that contains the value of iDirectoryObject.Identifier and the other given arguments. If the return value is not MQ_OK, processing MUST end. rStatus MUST be set to DirectoryOperationResult.GenericError.

  6. Processing MUST end. rStatus MUST be set to DirectoryOperationResult.Success.