Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
You can use the IMVSynchronization.Provision method to trigger deprovisioning on a single connector or multiple connectors to an MVEntry object after a specified time.
Note This sample only works if you run the management agent containing the remaining connector space object in full-synchronization mode, which is a very time-consuming operation in a large metadirectory.
The following example shows you how to deprovision an object from the metaverse after a specified time. For example, you can use this example to schedule an activity for an object in the metaverse, such as implementing a Time To Live scenario. The example assumes that the metaverse object has two additional attributes: DateofTermination and TimeToLive. These attributes are set during import attribute flow on the metaverse object.
Public Sub Provision( _
ByVal mventry As MVEntry) _
Implements IMVSynchronization.Provision
' If the function returns true, the account is expired. Disconnect the
' metaverse object from the connector space.
If AccountTTLExpired(MVEntry("DateofTermination").Value, MVEntry("TimeToLive").Value) Then
MVEntry.ConnectedMAs.DeprovisionAll()
End If
' Continue with normal provisioning.
End Sub
Public Function AccountTTLExpired(ByVal TerminatedDate As String, _
ByVal TTL As String) As Boolean
' If the TerminatedDate and TimeToLive attributes contain values, then
' add the attributes and compare to the current date. If the current date
' is more than or equal to the TerminatesDate and ToLiveTime value,
' the function returns true.
Dim TTLExpired As Boolean = False
If TerminatedDate.Equals("") Or TTL.Equals("") Then Exit Function
Try
Dim StartTTLDate As Date = CDate(TerminatedDate)
Dim DaysToTTL As Double = CDbl(TTL)
Dim TimeToLiveDate As DateTime
TimeToLiveDate = StartTTLDate.AddDays(DaysToTTL)
If Now >= TimeToLiveDate Then
TTLExpired = True
End If
Catch
' Handle exceptions here.
End Try
AccountTTLExpired = TTLExpired
End Function
void IMVSynchronization.Provision (MVEntry mventry)
{
// If the function returns true, the account is expired. Disconnect the
// metaverse object from the connector space.
if (AccountTTLExpired (mventry["DateofTermination"].Value, mventry["TimeToLive"].Value))
{
mventry.ConnectedMAs.DeprovisionAll();
}
// Continue with normal provisioning.
}
//...
public bool AccountTTLExpired(string TerminatedDate, string TTL)
{
// If the TerminatedDate and TimeToLive attributes contain values, then
// add the attributes and compare to the current date. If the current date
// is more than or equal to the TerminatesDate and ToLiveTime value,
// the function returns true.
if (TerminatedDate.Equals(""))
{
return(false);
}
if(TTL.Equals(""))
{
return(false);
}
try
{
//Convert TerminatedDate to a DateTime object
DateTime StartTTLDate;
StartTTLDate = Convert.ToDateTime(TerminatedDate);
//Convert the TTL string to a double
double DaysToTTL = Convert.ToDouble(TTL); //TTL
DateTime TimeToLiveDate = new DateTime();
//Add DaysToTTL to StartTTLDate to get TimeToLiveDate
TimeToLiveDate = StartTTLDate.AddDays(DaysToTTL);
if (DateTime.Now >= TimeToLiveDate)
{
return(true);
}
}
catch
{
// Handle exceptions here.
}
return false;
}
See Also
Send comments about this topic to Microsoft
Build date: 2/16/2009