Esempio n. 1
0
        public void Configuration(IAppBuilder appBuilder, IKernel kernel)
        {
            var name = typeof(Startup).Namespace;

            try
            {
                LogTo.Debug($"Configuring {name}...");

                var config = new HttpConfiguration();

                RaygunWebApiClient.Attach(config);

                config.BindParameter(typeof(RaygunMessage), new RaygunMessageBinder());
                config.Filters.Add(new ModelStateFilterAttribute());
                config.Filters.Add(kernel.Get <AuthenticateApiKeyFilterAttribute>());
                config.MapHttpAttributeRoutes();
                config.Routes.MapHttpRoute("DefaultApi", "{controller}/{id}", new { id = RouteParameter.Optional });
                config.Services.Add(typeof(IExceptionLogger), new LibLogExceptionLogger());

                appBuilder.UseNinjectMiddleware(() => kernel).UseNinjectWebApi(config);

                LogTo.Debug($"Successfully configured {name}.");
            }
            catch (Exception exception)
            {
                LogTo.ErrorException($"Configuring {name} failed.", exception);
                throw;
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Configures Identity, OAuth, Cors, Web Api and dependency resolution
        /// </summary>
        /// <param name="app"></param>
        public void Configuration(IAppBuilder app)
        {
            app.CreatePerOwinContext(() => new AppBuilderProvider(app));

            HttpConfiguration configuration = new HttpConfiguration();

            var corsPolicy = new CorsPolicy()
            {
                AllowAnyHeader      = true,
                AllowAnyMethod      = true,
                SupportsCredentials = true,
                AllowAnyOrigin      = true
            };

            app.UseCors(new CorsOptions()
            {
                PolicyProvider = new CorsPolicyProvider()
                {
                    PolicyResolver = context => Task.FromResult(corsPolicy)
                }
            });

            ConfigureOAuth(app);
            WebApiConfig.Register(configuration);
            app.UseNinjectMiddleware(CreateKernel).UseNinjectWebApi(configuration);
        }
Esempio n. 3
0
        public void Configuration(IAppBuilder appBuilder)
        {
            // Configure Web API for self-host.
            HttpConfiguration config = new HttpConfiguration();

            config.Routes.MapHttpRoute(
                name: "Web Api RPC",
                routeTemplate: "api/{controller}/{action}",
                defaults: new { id = RouteParameter.Optional },
                constraints: new
            {
                action     = @"[A-Za-z]+",
                httpMethod = new HttpMethodConstraint(HttpMethod.Post)
            }
                );

#if DEBUG
            config.Formatters.JsonFormatter.SerializerSettings.Formatting = Formatting.Indented;
#else
            config.Formatters.JsonFormatter.SerializerSettings.Formatting = Formatting.None;
#endif
            config.Formatters.JsonFormatter.UseDataContractJsonSerializer       = false;
            config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();             //REMEMBER Deserialization is case insensitive
            appBuilder.UseNinjectMiddleware(() => _kernel).UseNinjectWebApi(config);

            appBuilder.UseFileServer(new FileServerOptions
            {
                EnableDefaultFiles      = true,
                FileSystem              = new PhysicalFileSystem(""),
                EnableDirectoryBrowsing = true,                 //REMEMBER Will not happen as long as there is an Index.html
            });
        }
Esempio n. 4
0
        public void Configuration(IAppBuilder app)
        {
            app.UseCors(CorsOptions.AllowAll);

            ConfigureAuth(app);
            app.UseNinjectMiddleware(CreateKernel).UseNinjectWebApi(GlobalConfiguration.Configuration);
        }
Esempio n. 5
0
        // For more information on configuring authentication, please visit http://go.microsoft.com/fwlink/?LinkId=301864
        public void ConfigureAuth(IAppBuilder app)
        {
            DataProtectionProvider = app.GetDataProtectionProvider();
            // Configure the db context and user manager to use a single instance per request
            //app.CreatePerOwinContext(ApplicationDbContext.Create);
            app.CreatePerOwinContext(CreateKernel);
            app.UseNinjectMiddleware(CreateKernel);
            app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);

            // Enable the application to use a cookie to store information for the signed in user
            // and to use a cookie to temporarily store information about a user logging in with a third party login provider
            app.UseCookieAuthentication(new CookieAuthenticationOptions());
            app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);

            // Configure the application for OAuth based flow
            PublicClientId = "self";
            OAuthOptions = new OAuthAuthorizationServerOptions
            {
                TokenEndpointPath = new PathString("/Token"),
                Provider = new ApplicationOAuthProvider(PublicClientId),
                AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
                AccessTokenFormat = new HunterJwtFormat("http://localhost:53147/"),
                // In production mode set AllowInsecureHttp = false
                AllowInsecureHttp = true
            };

            // Enable the application to use bearer tokens to authenticate users
            //app.UseOAuthBearerTokens(OAuthOptions);
            app.UseOAuthAuthorizationServer(OAuthOptions);
            // Uncomment the following lines to enable logging in with third party login providers
            //app.UseLinkedInAuthentication(
            //    "<YOUR API KEY>",
            //    "<YOUR SECRET KEY>"
            //    );
        }
Esempio n. 6
0
        public static void Register(IAppBuilder app)
        {
            HttpConfiguration httpConfig = new HttpConfiguration();

            httpConfig.Formatters.Clear();
            PartialJsonMediaTypeFormatter partialJsonMediaTypeFormatter = new PartialJsonMediaTypeFormatter()
            {
                IgnoreCase = true
            };

            partialJsonMediaTypeFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
            //partialJsonMediaTypeFormatter.MediaTypeMappings.Add(new QueryStringMapping("type", "json", new MediaTypeHeaderValue("application/json")));
            httpConfig.Formatters.Add(partialJsonMediaTypeFormatter);
            XmlMediaTypeFormatter xmlMediaTypeFormatter = new XmlMediaTypeFormatter();

            //xmlMediaTypeFormatter.MediaTypeMappings.Add(new QueryStringMapping("type", "xml", new MediaTypeHeaderValue("application/xml")));
            httpConfig.Formatters.Add(xmlMediaTypeFormatter);

            httpConfig.MessageHandlers.Add(new XHttpMethodOverrideHandler());
            httpConfig.Services.Add(typeof(IExceptionLogger), new UnhandledExceptionLogger());

            httpConfig.MapHttpAttributeRoutes();
            httpConfig.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
                );

            httpConfig.EnableCors();
            app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);

            //app.UseWebApi(httpConfig);
            app.UseNinjectMiddleware(() => NinjectConfig.CreateKernel.Value);
            app.UseNinjectWebApi(httpConfig);
        }
Esempio n. 7
0
        public void Configuration(IAppBuilder app)
        {
            // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=316888

            var config = new HttpConfiguration();

            config.MapHttpAttributeRoutes();

            app.UseCors(new CorsOptions()
            {
                PolicyProvider = new CorsPolicyProvider()
                {
                    PolicyResolver = request => Task.FromResult(new CorsPolicy()
                    {
                        AllowAnyHeader      = true,
                        AllowAnyMethod      = true,
                        Origins             = { "http://localhost:4200" /*, "http://localhost:44352", "http://localhost:44382" */ },
                        SupportsCredentials = true
                    })
                },
                CorsEngine = new CorsEngine()
            });

            ConfigSecurity(app);

            app.UseNinjectMiddleware(() => new StandardKernel(new InjectModule()))
            .UseNinjectWebApi(config);

            Database.SetInitializer(new MigrateDatabaseToLatestVersion <UserContext, Configuration>());
        }
Esempio n. 8
0
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);

            app.UseNinjectMiddleware(CreateKernel).UseNinjectWebApi(GlobalConfiguration.Configuration);

        }
Esempio n. 9
0
        public void Configuration(IAppBuilder app)
        {
            var config = new HttpConfiguration();

            app.UseCors(CorsOptions.AllowAll);
            app.UseWebApi(config);
            this.ConfigureAuth(app);

            // Any connection or hub wire up and configuration should go here
            // Install-Package Microsoft.AspNet.SignalR in the console to match versions
            //app.MapSignalR();

            app.Map("/signalr", map =>
            {
                // Setup the CORS middleware to run before SignalR.
                // By default this will allow all origins. You can
                // configure the set of origins and/or http verbs by
                // providing a cors options with a different policy.
                map.UseCors(CorsOptions.AllowAll);
                var hubConfiguration = new HubConfiguration
                {
                    // You can enable JSONP by uncommenting line below.
                    // JSONP requests are insecure but some older browsers (and some
                    // versions of IE) require JSONP to work cross domain
                    // EnableJSONP = true
                };
                // Run the SignalR pipeline. We're not using MapSignalR
                // since this branch already runs under the "/signalr"
                // path.
                map.RunSignalR(hubConfiguration);
            });

            app.UseNinjectMiddleware(CreateKernel).UseNinjectWebApi(GlobalConfiguration.Configuration);
        }
Esempio n. 10
0
        public void Configuration(IAppBuilder app)
        {
            HttpConfiguration httpConfig = new HttpConfiguration();

            /*var appXmlType = httpConfig.Formatters.XmlFormatter.SupportedMediaTypes.FirstOrDefault(t => t.MediaType == "application/xml");
             * httpConfig.Formatters.XmlFormatter.SupportedMediaTypes.Remove(appXmlType);*/

            httpConfig.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;

            ConfigureOAuthTokenGeneration(app);

            ConfigureOAuthTokenConsumption(app);

            app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);

            ConfigureWebApi(httpConfig);

            //app.UseWebApi(httpConfig);

            app.UseWebApi(httpConfig);

            app.UseNinjectMiddleware(NinjectWebCommon.CreateKernel).UseNinjectWebApi(httpConfig);

            //app.UseNinjectWebApi(GlobalConfiguration.DefaultServer);
        }
            private static void UseWebApi(IAppBuilder application, IKernel kernel)
            {
                var config = new HttpConfiguration();
                config.MapHttpAttributeRoutes();
                var cors = new EnableCorsAttribute("*", "*", "*");

                //GlobalConfiguration.Configure(configuration =>
                //{
                //    configuration.SuppressDefaultHostAuthentication();
                //    configuration.MapHttpAttributeRoutes();
                //    configuration.EnableCors(cors);
                //    configuration.Filters.Add(new HostAuthenticationAttribute(OAuthDefaults.AuthenticationType));
                //    var jsonformatter = configuration.Formatters.JsonFormatter;
                //    jsonformatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
                //    configuration.AddJsonpFormatter();
                //    application.UseNinjectMiddleware(() => kernel);
                //    application.UseNinjectWebApi(configuration);
                //    application.UseWebApi(configuration);
                //});
                config.SuppressDefaultHostAuthentication();
                ConfigureOAuth(application);
                config.EnableCors(cors);
                config.Filters.Add(new HostAuthenticationAttribute(OAuthDefaults.AuthenticationType));
                var jsonformatter = config.Formatters.JsonFormatter;
                jsonformatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
                config.AddJsonpFormatter();

                application.UseNinjectMiddleware(() => kernel);
                application.UseNinjectWebApi(config);
                application.UseWebApi(config);

                application.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
            }
Esempio n. 12
0
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);

            var webApiConfiguration = new HttpConfiguration();
            //use camelcase
            var formatters = webApiConfiguration.Formatters;
            var jsonFormatter = formatters.JsonFormatter;
            var settings = jsonFormatter.SerializerSettings;
            settings.Formatting = Formatting.Indented;
            settings.ContractResolver = new CamelCasePropertyNamesContractResolver();

            //enable cors for pretty much everything
            var cors = new EnableCorsAttribute("*", "*", "*");
            webApiConfiguration.EnableCors(cors);

            webApiConfiguration.MapHttpAttributeRoutes();

            webApiConfiguration.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "{controller}/{id}",
                defaults: new { id = RouteParameter.Optional, controller = "values" });

            app.UseNinjectMiddleware(CreateKernel).UseNinjectWebApi(webApiConfiguration);
        }
Esempio n. 13
0
        public void Configuration(IAppBuilder app)
        {
            var config = new HttpConfiguration();

            //ConfigureOAuth(app);
            //ConfigureOAuthTokenGeneration(app);
            WebApiConfig.Register(config);
            app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
            app.UseNinjectMiddleware(() => NinjectConfig.CreateKernel.Value);
            app.UseNinjectWebApi(config);

            // Branch the pipeline here for requests that start with "/signalr"
            app.Map("/signalr", map =>
            {
                // Setup the CORS middleware to run before SignalR.
                // By default this will allow all origins. You can
                // configure the set of origins and/or http verbs by
                // providing a cors options with a different policy.
                map.UseCors(CorsOptions.AllowAll);
                var hubConfiguration = new HubConfiguration
                {
                    // You can enable JSONP by uncommenting line below.
                    // JSONP requests are insecure but some older browsers (and some
                    // versions of IE) require JSONP to work cross domain
                    // EnableJSONP = true
                };
                // Run the SignalR pipeline. We're not using MapSignalR
                // since this branch already runs under the "/signalr"
                // path.

                hubConfiguration.EnableDetailedErrors = true;
                map.RunSignalR(hubConfiguration);
            });
        }
Esempio n. 14
0
        public static IKernel CreateAndRegister(IAppBuilder app)
        {
            IKernel kernel = CreateKernel();

            app.UseNinjectMiddleware(() => { return(kernel); });
            return(kernel);
        }
Esempio n. 15
0
        public void Configuration(IAppBuilder app)
        {
            var config = new HttpConfiguration();

            config.EnableCors();
            config.MapHttpAttributeRoutes();
            config.Routes.MapHttpRoute(
                name: "BreezeApi",
                routeTemplate: "breeze/{controller}/{action}"
                );
            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
                );
            var json = config.Formatters.JsonFormatter;

            json.SerializerSettings.PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.Objects;
            config.Formatters.Remove(config.Formatters.XmlFormatter);
            json.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver();
            json.SerializerSettings.Formatting       = Newtonsoft.Json.Formatting.Indented;


            app.UseNinjectMiddleware(CreateKernel);
            app.UseNinjectWebApi(config);
        }
Esempio n. 16
0
        public void Configuration(IAppBuilder app)
        {
            var policy = new CorsPolicy
            {
                AllowAnyHeader = true,
                AllowAnyMethod = true,
                SupportsCredentials = true
            };

            policy.ExposedHeaders.Add("Authorization");

            app.UseCors(new CorsOptions
            {
                PolicyProvider = new CorsPolicyProvider
                {
                    PolicyResolver = context => Task.FromResult(policy)
                }
            });

            var config = new HttpConfiguration();

            WebApiConfig.Register(config);

            app.UseNinjectMiddleware(CreateKernel);
            app.UseNinjectWebApi(config);

        }
        public void ConfigureDI(IAppBuilder app)
        {
            var config = new HttpConfiguration();

            WebApiConfig.Register(config);
            app.UseNinjectMiddleware(CreateKernel).UseNinjectWebApi(config);
        }
Esempio n. 18
0
        public void Configuration(IAppBuilder app)
        {
            // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=316888
            var config = new HttpConfiguration();

            SwaggerConfig.Register(config);
            //config.Filters.Add(new AuthorizeAttribute());
            config.MapHttpAttributeRoutes();
            config.Filters.Add(new BadRequestFilterAttribute());

            JwtSecurityTokenHandler.InboundClaimTypeMap.Clear();
            JwtSecurityTokenHandler.InboundClaimFilter = new HashSet <string>();

            app.UseIdentityServerBearerTokenAuthentication(new IdentityServerBearerTokenAuthenticationOptions()
            {
                IssuerName         = "http://localhost:44382",
                AuthenticationMode = AuthenticationMode.Active,
                ValidationMode     = ValidationMode.Local,
                SigningCertificate = new X509Certificate2(Resources.bulbacourses, "123")
            }).UseCors(new CorsOptions()
            {
                PolicyProvider = new CorsPolicyProvider()
                {
                    PolicyResolver = request => Task.FromResult(new CorsPolicy()
                    {
                        AllowAnyHeader = true,
                        AllowAnyMethod = true,
                        AllowAnyOrigin = true
                    })
                },
                CorsEngine = new CorsEngine()
            });

            app.UseNinjectMiddleware(() => ConfigureValidation(config)).UseNinjectWebApi(config);
        }
Esempio n. 19
0
        public void Configuration(IAppBuilder app)
        {
            DataProtectionProvider = app.GetDataProtectionProvider();
            HttpConfiguration config = new HttpConfiguration();

            WebApiConfig.Register(config);
            SwaggerConfig.Register(config);

            app.UseOAuthAuthorizationServer(new OAuthAuthorizationServerOptions
            {
                TokenEndpointPath         = new PathString("/token"), //define the token path
                AllowInsecureHttp         = true,                     //for debug environment,
                AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),     //declare the expire time
                Provider             = new CustomOAuthServer(Kernel.Get <IIdentityService>()),
                RefreshTokenProvider = new CustomRefreshTokenServer(Kernel.Get <IIdentityService>())
            });

            app.UseCors(CorsOptions.AllowAll);
            //token generation
            #region facebook
            app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
            app.UseFacebookAuthentication(facebookAuthOptions = new FacebookAuthenticationOptions
            {
                AppId     = "266318357470729",
                AppSecret = "c425f789382947f98760dc4b55ca6a9f",
                Provider  = new FacebookAuthServer()
            });
            #endregion

            app.UseOAuthBearerAuthentication(OAuthBearerOptions = new OAuthBearerAuthenticationOptions());
            app.UseNinjectMiddleware(CreateKernel).UseNinjectWebApi(config);
        }
Esempio n. 20
0
        public void ConfigureNinject(IAppBuilder app)
        {
            var kernel = CreateKernel();

            ControllerBuilder.Current.SetControllerFactory(new NinjectControllerFactory(kernel));
            app.UseNinjectMiddleware(() => kernel);
        }
        public void Configuration(IAppBuilder builder)
        {
            builder.UseCookieAuthentication(new CookieAuthenticationOptions
            {
                AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
                LoginPath          = new PathString("/Account/Login"),
                LogoutPath         = new PathString("/Account/Logout"),
                ExpireTimeSpan     = TimeSpan.FromMinutes(5.0)
            });

            PublicClientId = "self";

            OuAuthAuthorizationServerOptions = new OAuthAuthorizationServerOptions
            {
                TokenEndpointPath         = new PathString("/Token"),
                Provider                  = new AppOauthProvider(PublicClientId),
                AuthorizeEndpointPath     = new PathString("/Account/ExternalLogin"),
                AccessTokenExpireTimeSpan = TimeSpan.FromHours(4.0),
                AllowInsecureHttp         = true
            };

            builder.UseOAuthBearerTokens(OuAuthAuthorizationServerOptions);

            HttpConfiguration configuration = new HttpConfiguration();

            WebApiConfig.Register(configuration);

            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            builder.UseNinjectMiddleware(() => NinjectConfig.CreateKernel.Value);
            builder.UseNinjectWebApi(configuration);
        }
Esempio n. 22
0
        // For more information on configuring authentication, please visit http://go.microsoft.com/fwlink/?LinkId=301864
        public void ConfigureAuth(IAppBuilder app)
        {
            kernel = CreateKernel();
            app.UseNinjectMiddleware(() => kernel);

            // Enable the application to use a cookie to store information for the signed in user
            // and to use a cookie to temporarily store information about a user logging in with a third party login provider
            // Configure the sign in cookie
            app.UseCookieAuthentication(new CookieAuthenticationOptions
            {
                AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
                LoginPath          = new PathString("/Account/Login"),
                Provider           = new CookieAuthenticationProvider
                {
                    // Enables the application to validate the security stamp when the user logs in.
                    // This is a security feature which is used when you change a password or add an external login to your account.
                    OnValidateIdentity = SecurityStampValidator.OnValidateIdentity <ApplicationUserManager, ApplicationUser>(
                        validateInterval: TimeSpan.FromMinutes(30),
                        regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
                }
            });
            //app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);

            // Enables the application to temporarily store user information when they are verifying the second factor in the two-factor authentication process.
            //app.UseTwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie, TimeSpan.FromMinutes(5));

            // Enables the application to remember the second login verification factor such as phone or email.
            // Once you check this option, your second step of verification during the login process will be remembered on the device where you logged in from.
            // This is similar to the RememberMe option when you log in.
            //app.UseTwoFactorRememberBrowserCookie(DefaultAuthenticationTypes.TwoFactorRememberBrowserCookie);
        }
Esempio n. 23
0
        public void Configuration(IAppBuilder app)
        {
            var bootstrapper = new SlowPokeWarsBootstrapper();

            bootstrapper.Initialize();

            var webApiConfiguration = new HttpConfiguration();

            webApiConfiguration.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{action}");

            // Server Setup
            app.MapSignalR(new HubConfiguration
            {
                EnableJavaScriptProxies = false, // true if you do not want to write proxies yourself
                EnableJSONP             = true,  // here b/c server starts on port that differes from UI server port.
                EnableDetailedErrors    = true,
                // required, if you want your DI container to resolve hub dependencies.
                Resolver = bootstrapper.GetSignalRDependencyResolver()
            });

            app.UseNinjectMiddleware(bootstrapper.GetKernel);
            app.UseNinjectWebApi(webApiConfiguration);
        }
Esempio n. 24
0
        public void Configuration(IAppBuilder app)
        {
            app.UseNinjectMiddleware(() => _kernel.Value);

            HttpConfiguration webApiConfig = new HttpConfiguration();

            WebApiConfig.Register(webApiConfig);
            app.UseWebApi(webApiConfig);

            //Ninject
            app.UseNinjectWebApi(webApiConfig);

            //AutoMapper
            if (!AutoMapperConfig.IsInitialized)
            {
                AutoMapperConfig.Initialize();
            }

            //Database path
            string codeBase = System.Reflection.Assembly.GetExecutingAssembly().CodeBase;

            System.UriBuilder uri  = new System.UriBuilder(codeBase);
            string            path = System.Uri.UnescapeDataString(uri.Path);
            var parent             = System.IO.Directory.GetParent(path);

            while (parent.Name.IndexOf("TAL.Developer.Test.") == -1)
            {
                parent = System.IO.Directory.GetParent(parent.FullName);
            }
            parent = System.IO.Directory.GetParent(parent.FullName); // ROOT
            System.AppDomain.CurrentDomain.SetData("DataDirectory", parent.FullName);
        }
Esempio n. 25
0
        /// <summary>
        ///   Configures the example service.
        /// </summary>
        /// <param name="app">OWIN builder.</param>
        public void Configuration(IAppBuilder app)
        {
            var config = new HttpConfiguration();

            app.UseNinjectMiddleware(CreateKernel).UseNinjectWebApi(config);
            ConfigureWebApi(app, config);
        }
Esempio n. 26
0
        public void Configuration(IAppBuilder app)
        {
            var config = new HttpConfiguration();

            OAuthConfig.ConfigureOAuth(app);

            HandlersConfig.RegisterGlobalHandlers(config);

            RoutesConfig.Register(config);

            FormattersConfig.Configure(config);

            FiltersConfig.RegisterGlobalFilters(config);

            BindersConfig.RegisterGlobalBinders(config);

            TracingConfig.Configure();

            TokenConfig.ConfigureOAuthTokenConsumption(app);

            AutoMapperConfig.ConfigMappers();

            app.UseCors(CorsOptions.AllowAll);

            app.UseNinjectMiddleware(IoC.CreateKernel);

            app.UseNinjectWebApi(config);
        }
Esempio n. 27
0
        // This code configures Web API. The Startup class is specified as a type
        // parameter in the WebApp.Start method.
        public void Configuration(IAppBuilder appBuilder)
        {
            // Configure Web API for self-host.
            HttpConfiguration config = new HttpConfiguration();


            config.MapHttpAttributeRoutes();
            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
                );

            var jsonFormatter = config.Formatters.OfType <JsonMediaTypeFormatter>().First();

            jsonFormatter.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
            // jsonFormatter.SerializerSettings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore;
            jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();

            appBuilder.UseErrorPage();
            appBuilder.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
            appBuilder.UseNinjectMiddleware(CreateKernel);
            appBuilder.UseNinjectWebApi(config);
            //appBuilder.UseWebApi(config);
        }
Esempio n. 28
0
        public void Configuration(IAppBuilder app)
        {
            var config = CreateHttpConfiguration();

            app.UseNinjectMiddleware(Ninject.CreateKernel);
            app.UseNinjectWebApi(config);
        }
Esempio n. 29
0
        //[Inject]
        //public SimpleAuthorizationServerProvider authProvider { get; set; }

        public void Configuration(IAppBuilder app)
        {
            // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=316888
            HttpConfiguration config = GlobalConfiguration.Configuration;

            app.Map("/signalr", map =>
            {
                map.UseCors(CorsOptions.AllowAll);
                var hubConfiguration = new HubConfiguration
                {
                    //EnableJSONP = true
                };
                map.RunSignalR(hubConfiguration);
            });
            //config.DependencyResolver = new OwinNinjectDependencyResolver(NinjectConfig.CreateKernel());

            WebApiConfig.Register(config);
            //ConfigureOAuth(app);
            //app.UseWebApi(config);
            config.MessageHandlers.Add(new TokenValidationHandler());
            //ConfigureOAuth(app);

            app.UseNinjectMiddleware(NinjectConfig.CreateKernel).UseNinjectWebApi(config);
            //SignalR


            CallCenterContext.InitDb();

            GlobalConfiguration.Configuration.EnsureInitialized();
        }
Esempio n. 30
0
        public void Configuration(IAppBuilder app)
        {
            var webApiConfiguration = new HttpConfiguration();
            webApiConfiguration.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
            webApiConfiguration.MapHttpAttributeRoutes();

            app
                .UseNinjectMiddleware(CreateKernel)
                .UseNinjectWebApi(webApiConfiguration)
                .UseFileServer(new FileServerOptions
                {
                    EnableDefaultFiles = false,
                    EnableDirectoryBrowsing = false,
                    StaticFileOptions =
                    {
                        RequestPath = new PathString("/css"),
                        FileSystem = new PhysicalFileSystem(BaseDirectory + "\\content"),
                        ContentTypeProvider = new FileExtensionContentTypeProvider(
                            new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase)
                            {
                                {".css", "text/css"}
                            })
                    }
                })
                .UseFileServer(new FileServerOptions
                {
                    EnableDefaultFiles = false,
                    EnableDirectoryBrowsing = false,
                    StaticFileOptions =
                    {
                        RequestPath = new PathString("/js"),
                        FileSystem = new PhysicalFileSystem(BaseDirectory + "\\scripts"),
                        ContentTypeProvider = new FileExtensionContentTypeProvider(
                            new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase)
                            {
                                {".js", "application/javascript"}
                            })
                    }
                })
                .UseFileServer(new FileServerOptions
                {
                    EnableDefaultFiles = true,
                    DefaultFilesOptions =
                    {
                        DefaultFileNames = { "index.html" }
                    },
                    EnableDirectoryBrowsing = false,
                    StaticFileOptions =
                    {
                        RequestPath = new PathString(""),
                        FileSystem = new PhysicalFileSystem(BaseDirectory + "\\static"),
                        ContentTypeProvider = new FileExtensionContentTypeProvider(
                            new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase)
                            {
                                {".html", "text/html"}
                            })
                    }
                });
        }
Esempio n. 31
0
 public void Configuration(IAppBuilder appBuilder)
 {
    
     //WebApiConfig.Register(config);
     //appBuilder.UseWebApi(config);
     appBuilder.UseCors(CorsOptions.AllowAll);
     appBuilder.UseNinjectMiddleware(NinjectWebCommon.CreateKernel).UseNinjectWebApi(WebApiConfig.Register());
 }
Esempio n. 32
0
 public void Configuration(IAppBuilder app)
 {
     CreateKernel();
     app.UseNinjectMiddleware(() => Kernel);
     DependencyResolver.SetResolver(new NinjectDependencyResolver(Kernel));
     GlobalHost.DependencyResolver = new SignalRNinjectDependencyResolver(Kernel);
     app.MapSignalR();
 }
Esempio n. 33
0
        public static void Register(IAppBuilder app)
        {
            var config = app.GetConfiguration();

            app.UseNinjectMiddleware(CreateKernel);

            app.UseNinjectWebApi(config);
        }
Esempio n. 34
0
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);
            var httpConfiguration = new HttpConfiguration();

            httpConfiguration.Routes.MapHttpRoute("default", "api/{controller}/{id}", new { id = RouteParameter.Optional });
            app.UseNinjectMiddleware(CreateKernel).UseNinjectWebApi(httpConfiguration);
        }
Esempio n. 35
0
        /// <summary>
        /// Configures the OWIN runtime
        /// </summary>
        /// <param name="app">The application builder</param>
        public void Configuration(IAppBuilder app)
        {
            app.UseOAuthAuthorizationServer(BlobstoreConfiguration.CreateAuthorizationOptions());
            app.UseOAuthBearerAuthentication(BlobstoreConfiguration.CreateAuthenticationOptions());
            app.UseNinjectMiddleware(BlobstoreConfiguration.CreateKernel);

            app.UseNinjectWebApi(BlobstoreConfiguration.CreateHttpConfiguration(AddElmahHandleErrorApiAttribute));
        }
Esempio n. 36
0
 public void Configuration(IAppBuilder app)
 {
     // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=316888
     app.UseCors(CorsOptions.AllowAll);
     app.MapSignalR();
     app.UseNinjectMiddleware(CreateKernel);
     app.UseNinjectWebApi(WebApiConfiguration());
 }
Esempio n. 37
0
        public void Configuration(IAppBuilder app)
        {
            HttpConfiguration httpConfiguration = new HttpConfiguration();

            WebApiConfig.Register(httpConfiguration);
            app.UseNinjectMiddleware(ConfigureKernel)
            .UseNinjectWebApi(httpConfiguration);
        }
Esempio n. 38
0
        public void Configuration(IAppBuilder app)
        {
            var config = new HttpConfiguration();

            WebApiConfig.Register(config);

            app.UseNinjectMiddleware(() => kernel.Value).UseNinjectWebApi(config);
        }
Esempio n. 39
0
        public IKernel ConfigureDependencyResolver(IAppBuilder app, HttpConfiguration httpConfiguration)
        {
            var kernel = CreateKernel();

            app.UseNinjectMiddleware(() => kernel)
            .UseNinjectWebApi(httpConfiguration);
            return(kernel);
        }
Esempio n. 40
0
        public void Configuration(IAppBuilder app)
        {
            var config = new HttpConfiguration();
            ConfigureOAuth(app);

            WebApiConfig.Register(config);
            app.UseNinjectMiddleware(CreateKernel).UseNinjectWebApi(config);
        }
Esempio n. 41
0
        internal void ConfigureNinjectKernel(IAppBuilder app)
        {
            _kernel = Configuration.CreateDependencyGraph;

            app.UseNinjectMiddleware(() => _kernel);

            ControllerBuilder.Current.SetControllerFactory(new InjectorControllerFactory(_kernel));
        }
Esempio n. 42
0
        public void Configuration(IAppBuilder app)
        {
            var kernel = NinjectConfig.CreateKernel();

            var config = new HttpConfiguration();

            WebApiConfig.Register(config);

            app.UseNinjectMiddleware(() => kernel)
            .UseOAuthAuthorizationServer(kernel.Get <MyOAuthAuthorizationServerOptions>().GetOptions())
            .UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions())
            .UseNinjectWebApi(config)
            .UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
            app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);

            // Enables the application to temporarily store user information when they are verifying the second factor in the two-factor authentication process.
            app.UseTwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie, TimeSpan.FromMinutes(5));

            // Enables the application to remember the second login verification factor such as phone or email.
            // Once you check this option, your second step of verification during the login process will be remembered on the device where you logged in from.
            // This is similar to the RememberMe option when you log in.
            app.UseTwoFactorRememberBrowserCookie(DefaultAuthenticationTypes.TwoFactorRememberBrowserCookie);

            // Uncomment the following lines to enable logging in with third party login providers
            //app.UseMicrosoftAccountAuthentication(
            //    clientId: "",
            //    clientSecret: "");

            app.UseTwitterAuthentication(new TwitterAuthenticationOptions
            {
                ConsumerKey    = "iJVM5GqxMBBEyvz10Pxs3m6Lb",
                ConsumerSecret = "6KlIfTtKvpjetodFkd10uyNGZ4ghM8pIy6ywdTFAcqIWUgy6rE",
                BackchannelCertificateValidator = new CertificateSubjectKeyIdentifierValidator(new[]
                {
                    "A5EF0B11CEC04103A34A659048B21CE0572D7D47", // VeriSign Class 3 Secure Server CA - G2
                    "0D445C165344C1827E1D20AB25F40163D8BE79A5", // VeriSign Class 3 Secure Server CA - G3
                    "7FD365A7C2DDECBBF03009F34339FA02AF333133", // VeriSign Class 3 Public Primary Certification Authority - G5
                    "39A55D933676616E73A761DFA16A7E59CDE66FAD", // Symantec Class 3 Secure Server CA - G4
                    "5168FF90AF0207753CCCD9656462A212B859723B", //DigiCert SHA2 High Assurance Server CA
                    "B13EC36903F8BF4701D498261A0802EF63642BC3"  //DigiCert High Assurance EV Root CA
                })
            });

            // app.UseTwitterAuthentication(
            //   consumerKey: "iJVM5GqxMBBEyvz10Pxs3m6Lb",
            //   consumerSecret: "6KlIfTtKvpjetodFkd10uyNGZ4ghM8pIy6ywdTFAcqIWUgy6rE");

            app.UseFacebookAuthentication(
                appId: "1815580465355811",
                appSecret: "c04bfe4d9cc6b130553581b0f8f64ca6");

            app.UseVkontakteAuthentication("5676120", "Nu0vHe58WZdsBUv6aUr3", "{PERMISSIONS}");
            //app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions()
            //{
            //    ClientId = "",
            //    ClientSecret = ""
            //});
        }
Esempio n. 43
0
        // For more information on configuring authentication, please visit http://go.microsoft.com/fwlink/?LinkId=301864
        public void ConfigureAuth(IAppBuilder app)
        {
            ConfigureAuth(app);

            var kernel = new StandardKernel();
            kernel.Load(Assembly.GetExecutingAssembly());
            kernel.Bind<IUserIdProvider>().To<AspNetUserIdProvider>();
            kernel.Bind<IOnlineShopData>().To<OnlineShopData>();
            kernel.Bind<DbContext>().To<OnlineShopContext>();

            var httpConfig = new HttpConfiguration();
            WebApiConfig.Register(httpConfig);
            app.UseNinjectMiddleware(() => kernel)
                .UseNinjectWebApi(httpConfig);

            // Configure the db context and user manager to use a single instance per request
            app.CreatePerOwinContext(OnlineShopContext.Create);
            app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);

            // Enable the application to use a cookie to store information for the signed in user
            // and to use a cookie to temporarily store information about a user logging in with a third party login provider
            app.UseCookieAuthentication(new CookieAuthenticationOptions());
            app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);

            // Configure the application for OAuth based flow
            PublicClientId = "self";
            OAuthOptions = new OAuthAuthorizationServerOptions
            {
                TokenEndpointPath = new PathString("/Token"),
                Provider = new ApplicationOAuthProvider(PublicClientId),
                AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"),
                AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
                // In production mode set AllowInsecureHttp = false
                AllowInsecureHttp = true
            };

            // Enable the application to use bearer tokens to authenticate users
            app.UseOAuthBearerTokens(OAuthOptions);

            // Uncomment the following lines to enable logging in with third party login providers
            //app.UseMicrosoftAccountAuthentication(
            //    clientId: "",
            //    clientSecret: "");

            //app.UseTwitterAuthentication(
            //    consumerKey: "",
            //    consumerSecret: "");

            //app.UseFacebookAuthentication(
            //    appId: "",
            //    appSecret: "");

            //app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions()
            //{
            //    ClientId = "",
            //    ClientSecret = ""
            //});
        }
Esempio n. 44
0
        public void Configuration(IAppBuilder app)
        {
            var config = new HttpConfiguration();
            WebApiConfig.Register(config);
            MappingConfig.RegisterMappings();

            app.UseNinjectMiddleware(() => NinjectConfig.CreateKernel.Value);
            app.UseNinjectWebApi(config);
        }
Esempio n. 45
0
        /// <summary>
        /// Configures the OWIN runtime
        /// </summary>
        /// <param name="app">The application builder</param>
        public void Configuration(IAppBuilder app)
        {
            app.UseOAuthAuthorizationServer(BlobstoreConfiguration.CreateAuthorizationOptions());
            app.UseOAuthBearerAuthentication(BlobstoreConfiguration.CreateAuthenticationOptions());
            app.UseNinjectMiddleware(BlobstoreConfiguration.CreateKernel);

            app.UseNinjectWebApi(BlobstoreConfiguration.CreateHttpConfiguration());
            app.UseWelcomePage();
        }
Esempio n. 46
0
        public void Configuration(IAppBuilder app)
        {
            HttpConfiguration config = new HttpConfiguration();
            ConfigureOAuth(app);

            WebApiConfig.Register(config);
            app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
            app.UseNinjectMiddleware(CreateKernel);
            app.UseNinjectWebApi(config);
        }
Esempio n. 47
0
        public IKernel ConfigureNinject(IAppBuilder app, HttpConfiguration httpConfig)
        {                       
            var kernel = CreateKernel(app);
            RegisterServiceLocator(kernel);

            app.UseNinjectMiddleware(() => kernel);
            app.UseNinjectWebApi(httpConfig);

            return kernel;
        }
Esempio n. 48
0
        public void Configuration(IAppBuilder app)
        {
            var config = new HttpConfiguration();
            config.MapHttpAttributeRoutes();

            var kernel = CreateKernel();

            app.UseNinjectMiddleware(() => kernel)
               .UseNinjectWebApi(config);
        }
Esempio n. 49
0
        public void Configuration(IAppBuilder app)
        {
            Database.SetInitializer(new MigrateDatabaseToLatestVersion<BugTrackerDbContext, BugTrackerDbMigrationConfiguration>());

            this.ConfigureAuth(app);
            var autoMapperConfig = new AutoMapperConfig();
            autoMapperConfig.Execute();

            app.UseNinjectMiddleware(CreateKernel).UseNinjectWebApi(GlobalConfiguration.Configuration);
        }
Esempio n. 50
0
        public void Configuration(IAppBuilder app)
        {
            HttpConfiguration config = new HttpConfiguration();

            ConfigureWebApi(config);
            ConfigureOAuth(app);

            app.UseCors(CorsOptions.AllowAll);
            app.UseNinjectMiddleware(CreateKernel).UseNinjectWebApi(config);
        }
Esempio n. 51
0
        public void Configuration(IAppBuilder app)
        {
            var webApiConfiguration = new HttpConfiguration();
            webApiConfiguration.Routes.MapHttpRoute("DefaultApi", "{controller}/{id}",
                new {id = RouteParameter.Optional, controller = "values"});

            webApiConfiguration.Formatters.Remove(webApiConfiguration.Formatters.XmlFormatter);

            app.UseNinjectMiddleware(CreateKernel).UseNinjectWebApi(webApiConfiguration);
        }
            public void Configure(IAppBuilder appBuilder, IKernel kernel)
            {
                var config = new HttpConfiguration();

                config.MapHttpAttributeRoutes();
                config.MapDefinedRoutes();

                appBuilder.UseNinjectMiddleware(() => kernel);
                appBuilder.UseNinjectWebApi(config);
            }
Esempio n. 53
0
        public void Configuration(IAppBuilder app)
        {
            var config = new HttpConfiguration();
            WebApiConfig.Register(config);

            config.EnableSwagger(c => c.SingleApiVersion("v1", "BigFoodieMealsAPI"))
                .EnableSwaggerUi();

            app.UseNinjectMiddleware(NinjectKernal.CreateKernel).UseNinjectWebApi(config);
        }
        // Дополнительные сведения о настройке аутентификации см. по адресу: http://go.microsoft.com/fwlink/?LinkId=301864
        public void ConfigureAuth(IAppBuilder app)
        {
            // Настройка контекста базы данных и диспетчера пользователей для использования одного экземпляра на запрос
            app.CreatePerOwinContext(ApplicationDbContext.Create);
            app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);

            // Включение использования файла cookie, в котором приложение может хранить информацию для пользователя, выполнившего вход,
            // и использование файла cookie для временного хранения информации о входах пользователя с помощью стороннего поставщика входа
            app.UseCookieAuthentication(new CookieAuthenticationOptions());
            app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);

            // Настройка приложения для потока обработки на основе OAuth
            PublicClientId = "self";
            OAuthOptions = new OAuthAuthorizationServerOptions
            {
                TokenEndpointPath = new PathString("/Token"),
                Provider = new ApplicationOAuthProvider(PublicClientId),
                AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"),
                AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
                AllowInsecureHttp = true
            };

            // Включение использования приложением маркера-носителя для аутентификации пользователей
            app.UseOAuthBearerTokens(OAuthOptions);

            //Настройка Ninject и WebApi
            var webApiConfiguration = new HttpConfiguration();
            webApiConfiguration.Routes
                .MapHttpRoute("API Default", "api/{controller}/{id}", new { id = RouteParameter.Optional });
            //GlobalFilters.Filters.Add(new RequireHttpsAttribute());

            //Только Json
            webApiConfiguration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
            //чтобы с маленьких букв начинались сериализованные данные
            webApiConfiguration.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
            //Использовать нинджект
            app.UseNinjectMiddleware(GetKernel).UseNinjectWebApi(webApiConfiguration);
            //авторизация нужна для всего Web Api
            //webApiConfiguration.Filters.Add(new AuthorizeAttribute());

            // Раскомментируйте приведенные далее строки, чтобы включить вход с помощью сторонних поставщиков входа
            //app.UseMicrosoftAccountAuthentication(
            //    clientId: "",
            //    clientSecret: "");

            //app.UseTwitterAuthentication(
            //    consumerKey: "",
            //    consumerSecret: "");

            //app.UseFacebookAuthentication(
            //    appId: "",
            //    appSecret: "");

            //app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions());
        }
Esempio n. 55
0
        public void Configuration(IAppBuilder app)
        {
            //app.Use(typeof(OwinStats.StatsMiddleWare));
            app.UseCors(CorsOptions.AllowAll);

            HttpConfiguration config = new Configuration();
            //	WEB API CORS Support
            config.MessageHandlers.Add(new ReportHost.Service.MessageHandlers.WebApiCorsHandler());

            app.UseNinjectMiddleware(NinjectConfig.CreateKernel).UseNinjectWebApi(config);
        }
Esempio n. 56
0
        public void Configuration(IAppBuilder app)
        {
            this.ConfigureAuth(app);

            app.UseNinjectMiddleware(CreateKernel).UseNinjectWebApi(GlobalConfiguration.Configuration);

            GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ContractResolver =
                new CamelCasePropertyNamesContractResolver();

            RegisterMappings();
        }
Esempio n. 57
0
        public void Configuration(IAppBuilder app)
        {
            HttpConfiguration config = new HttpConfiguration();
              HttpConfigurationRegistrar.Register(config);

              ObjectMapper.Configure();
              Business.Models.ObjectMapper.Configure();

              app.UseNinjectMiddleware(NinjectWebCommon.CreateKernel).UseNinjectWebApi(config);
              app.UseWebApi(config);
        }
Esempio n. 58
0
        /// <summary>
        /// Creates a configuration.
        /// </summary>
        /// <param name="app">
        /// The app.
        /// </param>
        public void Configuration(IAppBuilder app)
        {
            var webApiConfiguration = new HttpConfiguration();
            webApiConfiguration.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "{controller}/{id}",
                defaults: new { id = RouteParameter.Optional, controller = "values" });

            app.UseNinjectMiddleware(CreateKernel);
            app.UseNinjectWebApi(webApiConfiguration);
        }
Esempio n. 59
0
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);

            var httpConfig = new HttpConfiguration();

            WebApiConfig.Register(httpConfig);

            app.UseNinjectMiddleware(this.CreateKernel)
               .UseNinjectWebApi(httpConfig);
        }
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);

            var config = new HttpConfiguration();
            WebApiConfig.Register(config);
            app.UseNinjectMiddleware(() => NinjectConfig.CreateKernel.Value);
            app.UseNinjectWebApi(config);

            config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
        }