Ejemplo n.º 1
0
        /// <summary>
        /// Assign the agent connected as a principal of the system
        /// </summary>
        /// <param name="OidAgent">OID of the agent connected to the system</param>
        public IPrincipal AgentAssign(ONOid OidAgent)
        {
            // Retrieve old principal
            IPrincipal lPrincipalOld = Thread.CurrentPrincipal;

            // Create Identity
            GenericIdentity lIdentity = new GenericIdentity(OidAgent.ToString());

            // Create Principal
            string[] lRoles = new string[LeafActiveAgentFacets.Count];

            for (int i = 0; i < LeafActiveAgentFacets.Count; i++)
                lRoles[i] = LeafActiveAgentFacets[i];

            GenericPrincipal lPrincipal = new GenericPrincipal(lIdentity, lRoles);

            // Assign to the current thread
            Thread.CurrentPrincipal = lPrincipal;

            return lPrincipalOld;
        }