Appendix C - Metaverse Extension Code

Applies To: Windows Server 2008, Windows Server 2008 R2

The following is the metaverse extension code that is used in Step 12 - Run ACCOUNT MA Delta Import.

using System;
using Microsoft.MetadirectoryServices;

namespace Mms_Metaverse
{
    /// <summary>
    /// Summary description for MVExtensionObject.
    /// </summary>
    public class MVExtensionObject : IMVSynchronization
    {
        public MVExtensionObject()
        {
            //
            // TODO: Add constructor logic here
            //
        }

        void IMVSynchronization.Initialize()
        {
            //
            // TODO: Add initialization logic here
            //
        }

        void IMVSynchronization.Terminate()
        {
            //
            // TODO: Add termination logic here
            //
        }

        void IMVSynchronization.Provision(MVEntry mventry)
        {
            provisionToAD(mventry);

         //   provisionToSQL(mventry);
        }

        bool IMVSynchronization.ShouldDeleteFromMV(CSEntry csentry, MVEntry mventry)
        {
            //
            // TODO: Add MV deletion logic here
            //
            throw new EntryPointNotImplementedException();
        }

        public void provisionToAD(MVEntry mventry)
        {
            ConnectedMA MA;
            int Connectors = 0;
            CSEntry csentry;
            ReferenceValue DN;


            MA = mventry.ConnectedMAs["RESOURCE"];
            Connectors = MA.Connectors.Count;
            DN = MA.EscapeDNComponent("CN=" + mventry["cn"].Value).Concat("OU=ResourceForestUsers,DC=resource,DC=fabrikam,DC=net");

            if (0 == Connectors)
            {
                csentry = MA.Connectors.StartNewConnector("user");
                csentry.DN = DN;

                csentry.CommitNewConnector();
               
            }

            if (1 == Connectors)
            {
            }


        }

        public void provisionToSQL(MVEntry mventry)
        {
            ConnectedMA MA;
            int Connectors = 0;
            string empID;
            CSEntry csentry;
            string sidHist;

            MA = mventry.ConnectedMAs["SQL"];
            Connectors = MA.Connectors.Count;
            empID = mventry["employeeID"].Value;
            sidHist = "N";

            if (mventry["sIDHistory"].IsPresent)
            {
                sidHist = "Y";
            }

            if (0 == Connectors)
            {
                csentry = MA.Connectors.StartNewConnector("person");
                csentry["EmpID"].Value = empID;
                csentry["SidHistoryPresent"].Value = sidHist;
                csentry.CommitNewConnector();
            }

            if (1 == Connectors)
            {
            }


        }
    }
}

See Also

Concepts

Step 12 - Run ACCOUNT MA Delta Import
Testing the Implementation