示例#1
0
        /// <summary>
        /// Adds SSO application
        /// </summary>
        /// <param name="name">Application name</param>
        /// <param name="admins">Application admin group</param>
        /// <param name="users">Application users group</param>
        /// <returns>True if successful, otherwise false</returns>
        public static bool AddApplication(string name, string admins, string users)
        {
            try
            {
                ISSOAdmin admin = new ISSOAdmin();

                // Create application
                admin.CreateApplication(name, "SSO Sample Application",
                                        "*****@*****.**", users, admins,
                                        SSOFlag.SSO_WINDOWS_TO_EXTERNAL | SSOFlag.SSO_FLAG_ALLOW_TICKETS | SSOFlag.SSO_FLAG_VALIDATE_TICKETS, 2);

                // Add fields
                admin.CreateFieldInfo(name, "User Id", SSOFlag.SSO_FLAG_NONE);
                admin.CreateFieldInfo(name, "Password", SSOFlag.SSO_FLAG_FIELD_INFO_MASK);

                // Enable application
                admin.UpdateApplication(name, null, null, null, null, SSOFlag.SSO_FLAG_ENABLED, SSOFlag.SSO_FLAG_ENABLED);
            }
            catch
            {
                return(false);
            }

            return(true);
        }
        /// <summary>
        /// Creates a new SSO ConfigStore application.
        /// </summary>
        /// <param name="appName"></param>
        /// <param name="description"></param>
        /// <param name="uAccountName"></param>
        /// <param name="adminAccountName"></param>
        /// <param name="propertiesBag"></param>
        /// <param name="maskArray"></param>
        public static void CreateConfigStoreApplication(string appName, string description, string uAccountName, string adminAccountName, SsoPropBag propertiesBag, ArrayList maskArray)
        {
            int appFlags = 0;

            //bitwise operation for flags
            appFlags |= SSOFlag.SSO_FLAG_APP_CONFIG_STORE;
            appFlags |= SSOFlag.SSO_FLAG_SSO_WINDOWS_TO_EXTERNAL;
            appFlags |= SSOFlag.SSO_FLAG_APP_ALLOW_LOCAL;

            ISSOAdmin ssoAdmin = new ISSOAdmin();

            //create app
            ssoAdmin.CreateApplication(appName, description, "", uAccountName, adminAccountName, appFlags, propertiesBag.PropertyCount);

            //create property fields
            int counter = 0;

            //create dummy field in first slot
            ssoAdmin.CreateFieldInfo(appName, "dummy", 0);
            //create real fields
            foreach (DictionaryEntry de in propertiesBag.Properties)
            {
                string propName   = de.Key.ToString();
                int    fieldFlags = 0;
                fieldFlags |= Convert.ToInt32(maskArray[counter]);

                //create property
                ssoAdmin.CreateFieldInfo(appName, propName, fieldFlags);

                counter++;
            }

            //enable application
            ssoAdmin.UpdateApplication(appName, null, null, null, null, SSOFlag.SSO_FLAG_ENABLED, SSOFlag.SSO_FLAG_ENABLED);
        }
        /// <summary>
        /// Creates a new SSO ConfigStore application.
        /// </summary>
        /// <param name="appName"></param>
        /// <param name="description"></param>
        /// <param name="uAccountName"></param>
        /// <param name="adminAccountName"></param>
        /// <param name="propertiesBag"></param>
        /// <param name="maskArray"></param>
        public static void CreateConfigStoreApplication(string appName, string description, string uAccountName, string adminAccountName, SSOPropBag propertiesBag, ArrayList maskArray)
        {
            int appFlags = 0;

            //bitwise operation for flags
            appFlags |= SSOFlag.SSO_FLAG_APP_CONFIG_STORE;
            appFlags |= SSOFlag.SSO_FLAG_SSO_WINDOWS_TO_EXTERNAL;
            appFlags |= SSOFlag.SSO_FLAG_APP_ALLOW_LOCAL;

            ISSOAdmin ssoAdmin = new ISSOAdmin();

            //create app
            ssoAdmin.CreateApplication(appName, description, "ControlCenter", uAccountName, adminAccountName, appFlags, propertiesBag.PropertyCount);

            //create property fields
            int counter = 0;

            //create dummy field in first slot
            ssoAdmin.CreateFieldInfo(appName, "dummy", 0);
            //create real fields
            foreach (DictionaryEntry de in propertiesBag.properties)
            {
                string propName = de.Key.ToString();
                int fieldFlags = 0;
                fieldFlags |= Convert.ToInt32(maskArray[counter]);

                //create property
                ssoAdmin.CreateFieldInfo(appName, propName, fieldFlags);

                counter++;
            }

            //enable application
            ssoAdmin.UpdateApplication(appName, null, null, null, null, SSOFlag.SSO_FLAG_ENABLED, SSOFlag.SSO_FLAG_ENABLED);
        }
示例#4
0
 /// <summary>
 /// Create an SSO application.
 /// </summary>
 /// <param name="application">The name of the affiliate application.</param>
 /// <param name="type">The type of affiliate application.</param>
 /// <param name="description">A description for the affiliate application.</param>
 /// <param name="contact">Contact information for administering the affiliate application.</param>
 /// <param name="userGroup">The windows group for users that will use the affiliate application.</param>
 /// <param name="adminGroup">The windows group for administrators of the affiliate application.</param>
 /// <param name="tickets">A flag indicating if the affiliate application can be used to create SSO tickets.</param>
 /// <param name="local">A flag indicating whether or not local user accounts can use the affiliate application.</param>
 public void Create(string application, AffiliateApplicationType type, string description, string contact, string userGroup, string adminGroup, bool tickets, bool local)
 {
     try
     {
         int flags  = 0;
         int fields = 2;
         // Set flags.
         if (type == AffiliateApplicationType.Individual)
         {
             flags = SSOFlag.SSO_FLAG_SSO_WINDOWS_TO_EXTERNAL;
         }
         else if (type == AffiliateApplicationType.Group)
         {
             flags = SSOFlag.SSO_WINDOWS_TO_EXTERNAL;
             flags = flags | SSOFlag.SSO_FLAG_APP_GROUP;
             flags = flags | SSOFlag.SSO_FLAG_APP_USES_GROUP_MAPPING;
         }
         else if (type == AffiliateApplicationType.HostGroup)
         {
             flags = SSOFlag.SSO_EXTERNAL_TO_WINDOWS;
             flags = flags | SSOFlag.SSO_FLAG_APP_GROUP;
             flags = flags | SSOFlag.SSO_FLAG_APP_USES_GROUP_MAPPING;
         }
         else
         {
             throw new Exception("Unsupported affiliate application type: " + type.ToString() + ".");
         }
         if (tickets)
         {
             flags = flags | SSOFlag.SSO_FLAG_ALLOW_TICKETS | SSOFlag.SSO_FLAG_VALIDATE_TICKETS;
         }
         if (local)
         {
             flags = flags | SSOFlag.SSO_FLAG_APP_ALLOW_LOCAL;
         }
         // Create the application
         ISSOAdmin ssoAdmin = new ISSOAdmin();
         ssoAdmin.CreateApplication(application, description, contact, userGroup, adminGroup, flags, fields);
         // Create fields used by the application
         flags = 0;
         ssoAdmin.CreateFieldInfo(application, "User ID", flags);
         flags = SSOFlag.SSO_FLAG_FIELD_INFO_MASK | SSOFlag.SSO_FLAG_FIELD_INFO_SYNC;
         ssoAdmin.CreateFieldInfo(application, "Password", flags);
         // Enable the application
         ssoAdmin.UpdateApplication(application, null, null, null, null, SSOFlag.SSO_FLAG_ENABLED, SSOFlag.SSO_FLAG_ENABLED);
     }
     catch (Exception e)
     {
         throw new Exception("Failed to create affiliate application " + application + ". " + e.Message);
     }
 }
示例#5
0
        // Borrowed largely from Jon Flanders' SSOAppConfigHelper object.
        internal static void CreateApp(string appName, string userGroup, string adminGroup)
        {
            const int Fields = 2;
            int       flags  = SSOFlag.SSO_FLAG_APP_CONFIG_STORE | SSOFlag.SSO_FLAG_APP_ALLOW_LOCAL | SSOFlag.SSO_FLAG_SSO_WINDOWS_TO_EXTERNAL;

            ISSOAdmin _ssoAdmin = new ISSOAdmin();

            _ssoAdmin.CreateApplication(
                appName, appName + " Configuration Data", "*****@*****.**", userGroup, adminGroup, flags, Fields);
            _ssoAdmin.CreateFieldInfo(appName, "*****@*****.**", SSOFlag.SSO_FLAG_NONE);
            _ssoAdmin.CreateFieldInfo(appName, PropName, SSOFlag.SSO_FLAG_NONE);

            _ssoAdmin.UpdateApplication(appName, null, null, null, null, SSOFlag.SSO_FLAG_ENABLED, SSOFlag.SSO_FLAG_ENABLED);
        }
示例#6
0
        public static void CreateConfigStoreApplication(string appName, string description, string uAccountName, string adminAccountName, SSOPropBag propertiesBag, ArrayList maskArray)
        {
            int       flags1   = 0 | 1048576 | 4 | 262144;
            ISSOAdmin ssoAdmin = (ISSOAdmin) new SSOAdmin();

            ssoAdmin.CreateApplication(appName, description, "", uAccountName, adminAccountName, flags1, propertiesBag.PropertyCount);
            int index = 0;

            ssoAdmin.CreateFieldInfo(appName, "dummy", 0);
            foreach (DictionaryEntry property in propertiesBag.properties)
            {
                string label  = property.Key.ToString();
                int    flags2 = 0 | Convert.ToInt32(maskArray[index]);
                ssoAdmin.CreateFieldInfo(appName, label, flags2);
                ++index;
            }
            ssoAdmin.UpdateApplication(appName, (string)null, (string)null, (string)null, (string)null, 2, 2);
        }
示例#7
0
        public static AffiliateApplication Create(
            string name,
            string userGroup          = DEFAULT_USER_GROUP_NAME,
            string administratorGroup = DEFAULT_ADMINISTRATOR_GROUP_NAME,
            string description        = null
            )
        {
            if (name.IsNullOrEmpty())
            {
                throw new ArgumentNullException(nameof(name));
            }
            if (name.Contains(' '))
            {
                throw new ArgumentException("Name cannot contain spaces.", nameof(name));
            }
            if (FindByName(name) != null)
            {
                throw new ArgumentException($"{nameof(AffiliateApplication)} '{name}' already exists and cannot be duplicated.", nameof(name));
            }

            var application = new AffiliateApplication {
                Name = name,
                AdministratorGroup = administratorGroup ?? DEFAULT_ADMINISTRATOR_GROUP_NAME,
                Contact            = DEFAULT_CONTACT_INFO,
                Description        = description ?? $"{name} Configuration Store",
                UserGroup          = userGroup ?? DEFAULT_USER_GROUP_NAME
            };

            var ssoAdmin = new ISSOAdmin();

            ssoAdmin.CreateApplication(
                application.Name,
                application.Description,
                application.Contact,
                application.UserGroup,
                application.AdministratorGroup,
                SSOFlag.SSO_FLAG_APP_CONFIG_STORE | SSOFlag.SSO_FLAG_APP_ALLOW_LOCAL | SSOFlag.SSO_FLAG_SSO_WINDOWS_TO_EXTERNAL,
                1);

            ssoAdmin.CreateFieldInfo(name, application.Contact, SSOFlag.SSO_FLAG_NONE);
            ssoAdmin.UpdateApplication(name, null, null, null, null, SSOFlag.SSO_FLAG_ENABLED, SSOFlag.SSO_FLAG_ENABLED);

            return(application);
        }
        public static AffiliateApplication Create(
            string name,
            string[] administratorGroups = null,
            string[] userGroups          = null,
            string description           = null)
        {
            if (name.IsNullOrEmpty())
            {
                throw new ArgumentNullException(nameof(name));
            }
            if (name.Contains(' '))
            {
                throw new ArgumentException("Name cannot contain spaces.", nameof(name));
            }
            if (FindByName(name) != null)
            {
                throw new ArgumentException($"{nameof(AffiliateApplication)} '{name}' already exists and cannot be duplicated.", nameof(name));
            }

            var application = new AffiliateApplication {
                Name = name,
                AdministratorGroups = administratorGroups ?? DefaultAdministratorGroups,
                Contact             = DEFAULT_CONTACT_INFO,
                Description         = description ?? $"{name} Configuration Store",
                UserGroups          = userGroups ?? DefaultUserGroups
            };

            var ssoAdmin = new ISSOAdmin();

            ssoAdmin.CreateApplication(
                application.Name,
                application.Description,
                application.Contact,
                application.UserGroups.JoinGroups(),
                application.AdministratorGroups.JoinGroups(),
                SSOFlag.SSO_FLAG_APP_CONFIG_STORE | SSOFlag.SSO_FLAG_APP_ALLOW_LOCAL | SSOFlag.SSO_FLAG_SSO_WINDOWS_TO_EXTERNAL,
                2 /* number of fields to be created */);
            ssoAdmin.CreateFieldInfo(name, application.Contact, SSOFlag.SSO_FLAG_NONE);
            ssoAdmin.CreateFieldInfo(name, DEFAULT_SETTINGS_KEY, SSOFlag.SSO_FLAG_NONE);
            ssoAdmin.UpdateApplication(name, null, null, null, null, SSOFlag.SSO_FLAG_ENABLED, SSOFlag.SSO_FLAG_ENABLED);

            return(application);
        }
 public void CreateApplication(string name, string[] arrKeys)
 {
     try
     {
         using (TransactionScope transactionScope = new TransactionScope())
         {
             int       numFields = arrKeys.Length;
             int       flags     = 1310720;
             ISSOAdmin iSSOAdmin = (ISSOAdmin) new SSOAdmin();
             this.Enlist(iSSOAdmin, Transaction.Current);
             iSSOAdmin.CreateApplication(name, name + " Configuration Data", string.Format("biztalkadmin@{0}.com", strCompany), this.strAffiliateAppMgrGroup, this.strSSOAdminGroup, flags, numFields);
             this.CreateApplicationFields(name, iSSOAdmin, arrKeys);
             this.EnableApplication(name, iSSOAdmin);
             transactionScope.Complete();
         }
     }
     catch (Exception ex)
     {
         EventLog.WriteEntry("SSOConfigCmdTool - CreateApplication", ex.Message);
     }
 }
示例#10
0
 public void CreateApplication(string name, string[] arrKeys)
 {
     try
     {
         using (TransactionScope transactionScope = new TransactionScope())
         {
             int       numFields = arrKeys.Length;
             int       flags     = 1310720;
             ISSOAdmin iSSOAdmin = (ISSOAdmin) new SSOAdmin();
             Enlist(iSSOAdmin, Transaction.Current);
             iSSOAdmin.CreateApplication(name, name + " Configuration Data", _bizTalkEmailAddress, _affiliateAppMgrGroup, _ssoAdminGroup, flags, numFields);
             DoSsoEvent("CreateApplication", string.Format("{0}", name), false);
             CreateApplicationFields(name, iSSOAdmin, arrKeys);
             EnableApplication(name, iSSOAdmin);
             transactionScope.Complete();
         }
     }
     catch (Exception ex)
     {
         DoSsoEvent("SSO Helper - CreateApplication", ex.Message, true);
     }
 }
        /// <summary>
        /// execute task
        /// </summary>
        /// <returns></returns>
        public override bool Execute()
        {
            var fieldNames = CommaDelimitedFieldNames.Split(",".ToCharArray());
            var noFields   = fieldNames.Length + 1;
            var appFlags   = 0;

            //bitwise operation for flags
            appFlags |= SSOFlag.SSO_FLAG_APP_CONFIG_STORE;
            appFlags |= SSOFlag.SSO_FLAG_SSO_WINDOWS_TO_EXTERNAL;
            appFlags |= SSOFlag.SSO_FLAG_APP_ALLOW_LOCAL;

            var admin = new ISSOAdmin();

            admin.CreateApplication(ApplicationName, Description, "", UserGroup, AdministratorGroup, appFlags, noFields);

            const int fieldFlags = 0;

            admin.CreateFieldInfo(ApplicationName, "Reserved", fieldFlags);
            foreach (var fieldName in fieldNames)
            {
                admin.CreateFieldInfo(ApplicationName, fieldName, fieldFlags);
            }

            admin.UpdateApplication(ApplicationName, null, null, null, null, SSOFlag.SSO_FLAG_ENABLED, SSOFlag.SSO_FLAG_ENABLED);

            var propertiesBag = new ConfigurationPropertyBag();

            foreach (var field in fieldNames)
            {
                object val = "<empty>";
                propertiesBag.Write(field, ref val);
            }
            SSOConfiguration.Write(ApplicationName, propertiesBag);

            return(true);
        }