コード例 #1
0
        public static HttpConfiguration Configure(SiteFinityPluginOptions options)
        {
            var config = new HttpConfiguration();

            config.MapHttpAttributeRoutes();
            config.SuppressDefaultHostAuthentication();

            config.MessageHandlers.Insert(0, new KatanaDependencyResolver());
            config.Services.Add(typeof(IExceptionLogger), new LogProviderExceptionLogger());
            config.Services.Replace(typeof(IHttpControllerTypeResolver), new HttpControllerTypeResolver());

            config.Formatters.Remove(config.Formatters.XmlFormatter);

            config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.LocalOnly;

            if (options.IdentityServerOptions.LoggingOptions.EnableWebApiDiagnostics)
            {
                var liblog = new TraceSource("LibLog");
                liblog.Switch.Level = SourceLevels.All;
                liblog.Listeners.Add(new LibLogTraceListener());

                var diag = config.EnableSystemDiagnosticsTracing();
                diag.IsVerbose   = options.IdentityServerOptions.LoggingOptions.WebApiDiagnosticsIsVerbose;
                diag.TraceSource = liblog;
            }

            if (options.IdentityServerOptions.LoggingOptions.EnableHttpLogging)
            {
                config.MessageHandlers.Add(new RequestResponseLogger());
            }

            return(config);
        }
コード例 #2
0
        private void ConfigurePlugins(IAppBuilder pluginApp, IdentityServerOptions options)
        {
            var siteFinityOptions = new SiteFinityPluginOptions(options);

            // data sources for in-memory services
            siteFinityOptions.Factory.Register(new Registration <IEnumerable <SiteFinityRelyingParty> >(SiteFinityRelyingParties.Get()));
            siteFinityOptions.Factory.SiteFinityRelyingPartyService = new Registration <ISiteFinityRelyingPartyService>(typeof(InMemoryRelyingPartyService));

            pluginApp.UseSiteFinityPlugin(siteFinityOptions);
        }
コード例 #3
0
        private void ConfigurePlugins(IAppBuilder pluginApp, IdentityServerOptions options)
        {
            var siteFinityOptions = new SiteFinityPluginOptions(options);

            // data sources for in-memory services
            siteFinityOptions.Factory.Register(new Registration<IEnumerable<SiteFinityRelyingParty>>(SiteFinityRelyingParties.Get()));
            siteFinityOptions.Factory.SiteFinityRelyingPartyService = new Registration<ISiteFinityRelyingPartyService>(typeof(InMemoryRelyingPartyService));

            pluginApp.UseSiteFinityPlugin(siteFinityOptions);
        }
        public static IContainer Configure(SiteFinityPluginOptions options)
        {
            if (options == null)
            {
                throw new ArgumentNullException("options");
            }

            var factory = options.Factory;

            factory.Validate();

            var builder = new ContainerBuilder();

            // mandatory from factory
            builder.Register(factory.UserService);
            builder.Register(factory.SiteFinityRelyingPartyService);

            // Utilities
            builder.RegisterType <HttpUtility>().AsSelf();

            //Token parser
            builder.RegisterType <SimpleWebTokenParser>().AsSelf();

            // validators
            builder.RegisterType <SignInValidator>().AsSelf();

            // processors
            builder.RegisterType <SignInResponseGenerator>().AsSelf();
            //builder.RegisterType<MetadataResponseGenerator>().AsSelf();

            // general services
            //builder.RegisterType<CookieMiddlewareTrackingCookieService>().As<ITrackingCookieService>();
            builder.RegisterInstance(options).AsSelf();
            builder.RegisterInstance(options.IdentityServerOptions).AsSelf();

            // load core controller
            builder.RegisterApiControllers(typeof(SiteFinityController).Assembly);

            builder.Register(resolver => new OwinEnvironmentService(resolver.Resolve <IOwinContext>().Environment));

            // register additional dependencies from identity server
            foreach (var registration in options.IdentityServerOptions.Factory.Registrations)
            {
                builder.Register(registration);
            }

            // add any additional dependencies from hosting application
            foreach (var registration in factory.Registrations)
            {
                builder.Register(registration, registration.Name);
            }

            return(builder.Build());
        }
        /// <summary>
        /// Add the WS-Federation plugin to the IdentityServer pipeline.
        /// </summary>
        /// <param name="app">The appBuilder.</param>
        /// <param name="options">The options.</param>
        /// <returns>The appBuilder</returns>
        /// <exception cref="System.ArgumentNullException">options</exception>
        public static IAppBuilder UseSiteFinityPlugin(this IAppBuilder app, SiteFinityPluginOptions options)
        {
            if (options == null) throw new ArgumentNullException("options");
            options.Validate();

            //options.IdentityServerOptions.ProtocolLogoutUrls.Add(options.LogoutUrl);

            app.Map(options.MapPath, sitefinityApp =>
            {
                //sitefinityApp.UseCookieAuthentication(new CookieAuthenticationOptions
                //{
                //    AuthenticationType = WsFederationPluginOptions.CookieName,
                //    AuthenticationMode = AuthenticationMode.Passive,
                //    CookieName = options.IdentityServerOptions.AuthenticationOptions.CookieOptions.Prefix + WsFederationPluginOptions.CookieName,
                //});

                sitefinityApp.Use<AutofacContainerMiddleware>(AutofacConfig.Configure(options));
                SignatureConversions.AddConversions(app);
                sitefinityApp.UseWebApi(WebApiConfig.Configure(options));
            });

            return app;
        }