Share via


Example: CLM Enroll Linked Temp Card Request

The following examples show how to provision a CLM Temporary Card request for a temporary card that is linked to an existing profile. The first example demonstrates how to do this with the use of CLMUtils. CreateLinkedTempCardRequest. The second shows a more manual approach.

CLMUtils.CreateLinkedTempCardRequest

    Sub Provision(ByVal mventry As MVEntry)
        Implements IMVSynchronization.Provision
    
        Try
            If mventry("objectGUID").IsPresent Then
                CLMUtils.CreateLinkedTempCardRequest(CLMMA,
                    New Guid(mventry("objectGUID").BinaryValue),
                    "CLM Sample Profile Template")
            End If
        ' Log and rethrow any exception
        Catch ex As Exception
            Logging.Logging.LogException(ex,
                "Provision",
                "Caught exception",
                False)
            Throw
        End Try
    
    End Sub 'IMVSynchronization.Provision
    void IMVSynchronization.Provision (MVEntry mventry)
    {
        try
        {
            if (mventry["objectGUID"].IsPresent)
            {
                CLMUtils.CreateLinkedTempCardRequest(CLMMA,
                    new Guid(mventry["objectGUID"].BinaryValue),
                    "CLM Sample Profile Template");
            }
        }
        // Log and rethrow any exception
        catch(Exception ex)
        {
            Logging.Logging.LogException(ex,
                "Provision",
                "Caught exception",
                false);
            throw;
        }
    }

Provision Linked Temporary Card Request

    Sub Provision(ByVal mventry As MVEntry)
        Implements IMVSynchronization.Provision
    
        Try
            If mventry("objectGUID").IsPresent Then
                Dim targetCLMMA As ConnectedMA =
                    mventry.ConnectedMAs("CertificateLifecycleManagerMA")
                
                Dim csentry As CSEntry =
                    targetCLMMA.Connectors.StartNewConnector("clmRequest")
                
                csentry.DN = targetCLMMA.EscapeDNComponent("CN=" +
                    Guid.NewGuid().ToString())
                
                csentry("req_type").IntegerValue =
                    Fix(RequestTypeEnum.TemporaryCardEnroll)
                csentry("req_type_name").Value =
                    [Enum].GetName(GetType(RequestTypeEnum),
                    RequestTypeEnum.TemporaryCardEnroll)
                csentry("req_target_user_uuid").BinaryValue =
                    aDObjectGUID.ToByteArray()
                csentry("req_profile_template_name").Value =
                    profileTemplateName
    ' Uuid of the profile csentry object to which you want to link this
    ' request
                csentry("req_profile_uuid").BinaryValue =
                    profileCSEntry("profile_uuid").BinaryValue
    ' Uuid of the permanent smartcard, which you can get from the
    ' profile csentry object to which you want to link this request
                csentry("req_permanent_sc_uuid").BinaryValue =
                    profileCSEntry("pr_sc_uuid").BinaryValue
                csentry("req_originator_user_uuid").BinaryValue =
                    originatorGuid.ToByteArray()
                csentry("req_profile_template_uuid").BinaryValue =
                    GetProfileTemplateUuidFromProfileTemplateName(
                        profileTemplateName,
                        targetCLMMA).ToByteArray()
                csentry.CommitNewConnector()
            End If
        
        ' Log and rethrow any exception
        Catch ex As Exception
            Logging.Logging.LogException(ex, "Provision", "Caught exception", False)
            Throw
        End Try
    
    End Sub 'IMVSynchronization.Provision
    void IMVSynchronization.Provision(MVEntry mventry)
    {
        try
        {
            if (mventry["objectGUID"].IsPresent)
            {
                ConnectedMA targetCLMMA =
                    mventry.ConnectedMAs["CertificateLifecycleManagerMA"];
    
                CSEntry csentry =
                    targetCLMMA.Connectors.StartNewConnector("clmRequest");
    
                csentry.DN = targetCLMMA.EscapeDNComponent("CN=" +
                    Guid.NewGuid().ToString());
    
                csentry["req_type"].IntegerValue =
                    (long)RequestTypeEnum.TemporaryCardEnroll;
                csentry["req_type_name"].Value =
                    Enum.GetName(typeof(RequestTypeEnum),
                    RequestTypeEnum.TemporaryCardEnroll);
                csentry["req_target_user_uuid"].BinaryValue =
                    aDObjectGUID.ToByteArray();
                csentry["req_profile_template_name"].Value =
                    profileTemplateName;
    // Uuid of the profile csentry object to which you want to link this
    // request
                csentry["req_profile_uuid"].BinaryValue =
                    profileCSEntry["profile_uuid"].BinaryValue;
    // Uuid of the permanent smartcard, which you can get from the
    // profile csentry object to which you want to link this request
                csentry["req_permanent_sc_uuid"].BinaryValue =
                    profileCSEntry["pr_sc_uuid"].BinaryValue;
                csentry["req_originator_user_uuid"].BinaryValue =
                    originatorGuid.ToByteArray();
                csentry["req_profile_template_uuid"].BinaryValue =
                    GetProfileTemplateUuidFromProfileTemplateName(
                        profileTemplateName,
                        targetCLMMA).ToByteArray();
                csentry.CommitNewConnector();
            }
        }
    
        // Log and rethrow any exception
        catch (Exception ex)
        {
            Logging.Logging.LogException(ex,
                "Provision",
                "Caught exception",
                false);
            throw;
        }
    }

Send comments about this topic to Microsoft

Build date: 2/16/2009