The following examples show how to provision a Forefront Identity Manager Certificate Management (FIM CM) Temporary Card request for a temporary card that is linked to an existing profile. The first example demonstrates how to do this using CreateLinkedTempCardRequest. The second example shows a more manual approach.

CLMUtils.CreateLinkedTempCardRequest

Visual Basic  Copy Code
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
C#  Copy Code
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

Visual Basic  Copy Code
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 smart card, 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
C#  Copy Code
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 smart card, 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;
}
}

See Also

Reference

CreateLinkedTempCardRequest

Concepts

Forefront Identity Manager Certificate Management Connected Data Sources