/// <summary>
 /// Constructor
 /// </summary>
 public IdentityServiceApplicationJobDefinition(IdentityServiceApplication serviceApplication, string name) : base(GenerateJobName(serviceApplication, name), serviceApplication.Service)
 {
     ArgumentValidator.IsNotNull(serviceApplication, "IdentityServiceApplication");
     _serviceApplicationId        = serviceApplication.Id;
     _defaultschedule             = new SPMinuteSchedule();
     _defaultschedule.Interval    = 2;
     _defaultschedule.BeginSecond = 1;
     _defaultschedule.EndSecond   = 59;
     this.Schedule = _defaultschedule;
 }
        /// <summary>
        /// Select method implementation
        /// </summary>
        public static IEnumerable <GlobalParameterWrapper> Select(IdentityServiceApplication serviceapplication)
        {
            List <GlobalParameterWrapper> lst = new List <GlobalParameterWrapper>();
            List <GlobalParameter>        src = serviceapplication.GetGlobalParameterList().ToList <GlobalParameter>();

            foreach (GlobalParameter glb in src)
            {
                lst.Add(new GlobalParameterWrapper(glb.CacheDuration, glb.ClaimsDisplayMode, glb.ClaimDisplayName, glb.ClaimIdentityMode, glb.ClaimIdentity, glb.ClaimProviderName, glb.ClaimRoleMode, glb.ClaimRole, glb.ClaimsMode, glb.PeoplePickerDisplayMode, glb.PeoplePickerImages, glb.SearchByDisplayName, glb.SearchByMail, glb.ShowSystemNodes, glb.SmoothRequestor, glb.TrustedLoginProviderName));
            }
            return(lst);
        }
예제 #3
0
        /// <summary>
        /// InternalProcessRecord method override
        /// </summary>
        protected override void InternalProcessRecord()
        {
            SPFarm farm = SPFarm.Local;

            if (null == farm)
            {
                ThrowTerminatingError(new InvalidOperationException("SharePoint server farm not found."), ErrorCategory.ResourceUnavailable, this);
            }
            AdministrationService service = farm.Services.GetValue <AdministrationService>();

            if (null == service)
            {
                ThrowTerminatingError(new InvalidOperationException("SharePoint Identity Service not found."), ErrorCategory.ResourceUnavailable, this);
            }
            IdentityServiceApplication existingServiceApplication = service.Applications.GetValue <IdentityServiceApplication>(this.Name);

            if (null == existingServiceApplication)
            {
                ThrowTerminatingError(new InvalidOperationException("SharePoint Identity Service Application not found."), ErrorCategory.ResourceUnavailable, this);
            }
            if (this.ParameterSetName == AssemblyParameterSetName)
            {
                this.WriteObject(existingServiceApplication.GetAssemblyConfiguration());
            }
            else if (this.ParameterSetName == ConfigurationParameterSetName)
            {
                this.WriteObject(existingServiceApplication.GetConnectionConfiguration(m_connection));
            }
            else if (this.ParameterSetName == AllConfigurationParameterSetName)
            {
                this.WriteObject(existingServiceApplication.GetConnectionConfigurationList());
            }
            else if (this.ParameterSetName == DomainParameterSetName)
            {
                this.WriteObject(existingServiceApplication.GetDomainConfiguration(m_domain));
            }
            else if (this.ParameterSetName == AllDomainParameterSetName)
            {
                this.WriteObject(existingServiceApplication.GetDomainConfigurationList());
            }
            else if (this.ParameterSetName == AllGlobalParameterSetName)
            {
                this.WriteObject(existingServiceApplication.FillGeneralParameters());
            }
            else if (this.ParameterSetName == ReloadParameterSetName)
            {
                this.WriteObject(existingServiceApplication.Reload());
            }
            else
            {
                throw new NotSupportedException("Parameter set not supported.");
            }
        }
 /// <summary>
 /// Constructor
 /// </summary>
 public IdentityServiceApplicationReloadJobDefinition(IdentityServiceApplication serviceApplication, string name) : base(GenerateJobName(serviceApplication, name), serviceApplication.Service)
 {
     ArgumentValidator.IsNotNull(serviceApplication, "IdentityServiceApplication");
     _serviceApplicationId        = serviceApplication.Id;
     _defaultschedule             = new SPDailySchedule();
     _defaultschedule.BeginHour   = 23;
     _defaultschedule.EndHour     = 23;
     _defaultschedule.BeginMinute = 0;
     _defaultschedule.EndMinute   = 5;
     _defaultschedule.BeginSecond = 1;
     _defaultschedule.EndSecond   = 59;
     this.Schedule = _defaultschedule;
 }
        /// <summary>
        /// Select method implementation
        /// </summary>
        public static IEnumerable <ConnectionConfigurationWrapper> Select(IdentityServiceApplication serviceapplication)
        {
            List <ConnectionConfigurationWrapper> lst = new List <ConnectionConfigurationWrapper>();
            List <ConnectionConfiguration>        src = serviceapplication.GetConnectionConfigurationList().ToList <ConnectionConfiguration>();

            foreach (ConnectionConfiguration dom in src)
            {
                lst.Add(new ConnectionConfigurationWrapper(dom.ConnectionName, dom.Username, dom.Password, dom.Timeout, dom.Secure, dom.Maxrows, dom.ConnectString));
            }
            if (lst.Count == 0)
            {
                lst.Add(new ConnectionConfigurationWrapper());
            }
            return(lst);
        }
        /// <summary>
        /// Select method implementation
        /// </summary>
        public static IEnumerable <DomainConfigurationWrapper> Select(IdentityServiceApplication serviceapplication)
        {
            List <DomainConfigurationWrapper> lst = new List <DomainConfigurationWrapper>();
            List <DomainConfiguration>        src = serviceapplication.GetDomainConfigurationList().ToList <DomainConfiguration>();

            foreach (DomainConfiguration dom in src)
            {
                lst.Add(new DomainConfigurationWrapper(dom.DisplayName, dom.DnsName, dom.Connection, dom.Enabled, dom.DisplayPosition));
            }
            if (lst.Count == 0)    // For Showing Footer Row
            {
                lst.Add(new DomainConfigurationWrapper(string.Empty, string.Empty, string.Empty, false, -1));
            }
            return(lst);
        }
예제 #7
0
        /// <summary>
        /// Select method implementation
        /// </summary>
        public static IEnumerable <AssemblyConfigurationWrapper> Select(IdentityServiceApplication serviceapplication)
        {
            List <AssemblyConfigurationWrapper> lst = new List <AssemblyConfigurationWrapper>();
            List <AssemblyConfiguration>        src = serviceapplication.GetAssemblyConfigurationList().ToList <AssemblyConfiguration>();

            foreach (AssemblyConfiguration ass in src)
            {
                lst.Add(new AssemblyConfigurationWrapper(ass.AssemblyFulldescription, ass.AssemblyTypeDescription, ass.Selected, ass.TraceResolve, ass.ClaimsExt));
            }
            if (lst.Count == 0)
            {
                lst.Add(new AssemblyConfigurationWrapper());
            }
            return(lst);
        }
        /// <summary>
        /// CheckApplicationProxy metho implementation
        /// </summary>
        private bool CheckApplicationProxy(IdentityServiceApplication app, ServiceApplicationProxy prxy)
        {
            bool result = false;

            try
            {
                string   path  = app.IisVirtualDirectoryPath;
                string[] xpath = path.Split('\\');
                result = (prxy.ServiceEndpointUri.ToString().ToLower().Contains(xpath[1]));
            }
            catch
            {
                result = false;
            }
            return(result);
        }
예제 #9
0
        public async Task <IActionResult> Create(CreateApplicationViewModel model)
        {
            var application = new IdentityServiceApplication
            {
                Name     = model.Name,
                ClientId = Guid.NewGuid().ToString()
            };

            await _applicationManager.CreateAsync(application);

            await _applicationManager.AddScopeAsync(application, OpenIdConnectScope.OpenId);

            await _applicationManager.AddScopeAsync(application, "offline_access");

            return(RedirectToAction(nameof(CreateScope), new { id = application.Id }));
        }
예제 #10
0
 /// <summary>
 /// ExecuteOnProxy method implementation
 /// </summary>
 public void ExecuteOnProxy(bool clearcache)
 {
     try
     {
         SPFarm farm = SPFarm.Local;
         IdentityServiceProxy serviceProxy = farm.ServiceProxies.GetValue <IdentityServiceProxy>();
         if (null != serviceProxy)
         {
             foreach (SPServiceApplicationProxy prxy in serviceProxy.ApplicationProxies)
             {
                 if (prxy is ServiceApplicationProxy)
                 {
                     if (CheckApplicationProxy(ServiceApplication, prxy as ServiceApplicationProxy))
                     {
                         if (clearcache)
                         {
                             foreach (SPServer srv in farm.Servers)
                             {
                                 IdentityServiceApplication app = srv.ServiceInstances.GetValue <IdentityServiceApplication>(new Guid(this.GetID()));
                                 if ((app != null) && (app.Status == SPObjectStatus.Online))
                                 {
                                     ((ServiceApplicationProxy)prxy).LaunchClearCacheCommand(srv.Name);  // Only on one valid Server
                                     break;
                                 }
                             }
                         }
                         else
                         {
                             foreach (SPServer srv in farm.Servers)
                             {
                                 IdentityServiceApplication app = srv.ServiceInstances.GetValue <IdentityServiceApplication>(new Guid(this.GetID()));
                                 if ((app != null) && (app.Status == SPObjectStatus.Online))
                                 {
                                     ((ServiceApplicationProxy)prxy).LaunchReloadCommand(srv.Name);   // On Each Servers
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     catch
     {
         // Do Nothing
     }
 }
예제 #11
0
        /// <summary>
        /// InternalProcessRecord method override
        /// </summary>
        protected override void InternalProcessRecord()
        {
            SPFarm farm = SPFarm.Local;

            if (null == farm)
            {
                ThrowTerminatingError(new InvalidOperationException("SharePoint server farm not found."), ErrorCategory.ResourceUnavailable, this);
            }
            AdministrationService service = farm.Services.GetValue <AdministrationService>();

            if (null == service)
            {
                ThrowTerminatingError(new InvalidOperationException("SharePoint Identity Service not found."), ErrorCategory.ResourceUnavailable, this);
            }
            IdentityServiceApplication existingServiceApplication = service.Applications.GetValue <IdentityServiceApplication>(this.Name);

            if (null == existingServiceApplication)
            {
                ThrowTerminatingError(new InvalidOperationException("SharePoint Identity Service Application not found."), ErrorCategory.ResourceUnavailable, this);
            }
            if (this.ParameterSetName == AssemblyParameterSetName)
            {
                if (existingServiceApplication.SetAssemblyConfiguration(this.AssemblyConfiguration, this.NewAssemblyConfiguration))
                {
                    this.WriteObject("Assembly defintion correctly updated !");
                }
            }
            else if (this.ParameterSetName == ConfigurationParameterSetName)
            {
                if (existingServiceApplication.SetConnectionConfiguration(this.ConnectionConfiguration, this.NewConnectionConfiguration))
                {
                    this.WriteObject("Connection parameters defintion correctly updated !");
                }
            }
            else if (this.ParameterSetName == DomainParameterSetName)
            {
                if (existingServiceApplication.SetDomainConfiguration(this.DomainConfiguration, this.NewDomainConfiguration))
                {
                    this.WriteObject("Domain Configuration defintion correctly updated !");
                }
            }
            else
            {
                throw new NotSupportedException("Parameter set not supported.");
            }
        }
예제 #12
0
        /// <summary>
        /// CreateApplication method override
        /// </summary>
        public SPServiceApplication CreateApplication(string name, Type serviceApplicationType, SPServiceProvisioningContext provisioningContext)
        {
            if (null == provisioningContext)
            {
                throw new ArgumentNullException("provisioningContext");
            }
            if (serviceApplicationType != typeof(IdentityServiceApplication))
            {
                throw new NotSupportedException();
            }
            IdentityServiceApplication application = this.Farm.GetObject(name, this.Id, serviceApplicationType) as IdentityServiceApplication;

            if (null == application)
            {
                SPDatabaseParameters databaseParameters = SPDatabaseParameters.CreateParameters(name, SPDatabaseParameterOptions.None);
                databaseParameters.Validate(SPDatabaseValidation.CreateNew);
                application = IdentityServiceApplication.Create(name, this, provisioningContext.IisWebServiceApplicationPool, databaseParameters);
            }
            return(application);
        }
예제 #13
0
        /// <summary>
        /// InternalProcessRecord method override
        /// </summary>
        protected override void InternalProcessRecord()
        {
            SPFarm farm = SPFarm.Local;

            if (null == farm)
            {
                ThrowTerminatingError(new InvalidOperationException("SharePoint server farm not found."), ErrorCategory.ResourceUnavailable, this);
            }
            AdministrationService service = farm.Services.GetValue <AdministrationService>();

            if (null == service)
            {
                ThrowTerminatingError(new InvalidOperationException("SharePoint Identity Service not found."), ErrorCategory.ResourceUnavailable, this);
            }
            IdentityServiceApplication existingServiceApplication = service.Applications.GetValue <IdentityServiceApplication>(this.Name);

            if (null == existingServiceApplication)
            {
                ThrowTerminatingError(new InvalidOperationException("SharePoint Identity Service Application not found."), ErrorCategory.ResourceUnavailable, this);
            }
            this.WriteObject(existingServiceApplication.Reload());
        }
 /// <summary>
 /// GenerateJobName method implementation
 /// </summary>
 private static string GenerateJobName(IdentityServiceApplication app, string jobName)
 {
     ArgumentValidator.IsNotNull(app, "IdentityServiceApplication");
     ArgumentValidator.IsNotEmpty(jobName, "JobName");
     return(app.Name + "_" + jobName);
 }