butoff

Startup

Aug 1st, 2018
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.22 KB | None | 0 0
  1.  
  2. using Microsoft.AspNetCore.Builder;
  3. using Microsoft.AspNetCore.Identity;
  4. using Microsoft.AspNetCore.Hosting;
  5. using Microsoft.AspNetCore.Http;
  6. using Microsoft.AspNetCore.HttpsPolicy;
  7. using Microsoft.AspNetCore.Mvc;
  8. using Microsoft.EntityFrameworkCore;
  9. using Microsoft.Extensions.Configuration;
  10. using Microsoft.Extensions.DependencyInjection;
  11. using SoftUni.Data;
  12. using Microsoft.AspNetCore.Identity.UI.Services;
  13. using SoftUni.App.Areas.Identity.Services;
  14. using SoftUni.Models;
  15. using SoftUni.App.Common;
  16.  
  17. namespace SoftUni.App
  18. {
  19.     public class Startup
  20.     {
  21.         public Startup(IConfiguration configuration)
  22.         {
  23.             Configuration = configuration;
  24.         }
  25.  
  26.         public IConfiguration Configuration { get; }
  27.  
  28.         public void ConfigureServices(IServiceCollection services)
  29.         {
  30.             services.Configure<CookiePolicyOptions>(options =>
  31.             {
  32.                 options.CheckConsentNeeded = context => true;
  33.                 options.MinimumSameSitePolicy = SameSiteMode.None;
  34.             });
  35.  
  36.             services.ConfigureApplicationCookie(options =>
  37.             {
  38.                 options.LoginPath = $"/Identity/Account/Login";
  39.                 options.LogoutPath = $"/Identity/Account/Logout";
  40.                 options.AccessDeniedPath = $"/Identity/Account/AccessDenied";
  41.             });
  42.  
  43.             services.AddDbContext<SoftUniDbContext>(options =>
  44.                 options.UseSqlServer(
  45.                     Configuration.GetConnectionString("DefaultConnection")));
  46.  
  47.  
  48.             services.AddIdentity<User, IdentityRole>()
  49.                 .AddDefaultTokenProviders()
  50.                 .AddEntityFrameworkStores<SoftUniDbContext>();
  51.  
  52.             services.AddAuthentication()
  53.                     .AddFacebook(options =>
  54.                     {                      
  55.                         options.AppId = Configuration.GetSection("ExternalAuth:Facebook:AppId").Value;
  56.                         options.AppSecret = Configuration.GetSection("ExternalAuth:Facebook:AppSecret").Value;
  57.                     })
  58.                     .AddGoogle(options =>
  59.                     {
  60.                         options.ClientId = Configuration.GetSection("ExternalAuth:Google:ClientId").Value;
  61.                         options.ClientSecret = Configuration.GetSection("ExternalAuth:Google:ClientSecret").Value;
  62.                     });
  63.  
  64.             services.Configure<IdentityOptions>(options =>
  65.             {
  66.                 options.Password = new PasswordOptions()
  67.                 {                    
  68.                     RequiredLength = 4,
  69.                     RequiredUniqueChars = 1,
  70.                     RequireDigit = false,
  71.                     RequireLowercase = true,
  72.                     RequireNonAlphanumeric = false,
  73.                     RequireUppercase = false
  74.                 };
  75.  
  76.                 //options.SignIn.RequireConfirmedEmail = true;
  77.             });
  78.  
  79.             services.AddSingleton<IEmailSender, CustomEmailSender>();
  80.  
  81.             services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
  82.         }
  83.  
  84.         public void Configure(IApplicationBuilder app, IHostingEnvironment env)
  85.         {
  86.             if (env.IsDevelopment())
  87.             {
  88.                 app.UseDeveloperExceptionPage();
  89.                 app.UseDatabaseErrorPage();
  90.             }
  91.             else
  92.             {
  93.                 app.UseExceptionHandler("/Home/Error");
  94.                 app.UseHsts();
  95.             }
  96.  
  97.             app.UseHttpsRedirection();
  98.             app.UseStaticFiles();
  99.             app.UseCookiePolicy();
  100.  
  101.             app.SeedDb();
  102.  
  103.             app.UseAuthentication();
  104.  
  105.             app.UseMvc(routes =>
  106.             {
  107.                 //routes.MapAreaRoute(
  108.                 //    name: "admin_area",
  109.                 //    areaName: "Admin",
  110.                 //    template: "Admin/{controller=Manager}/{action=Panel}/{id?}");
  111.  
  112.                 routes.MapRoute(
  113.                     name: "areas",
  114.                     template: "{area:exists}/{controller=Manager}/{action=Panel}/{id?}");
  115.  
  116.                 routes.MapRoute(
  117.                     name: "default",
  118.                     template: "{controller=Home}/{action=Index}/{id?}");
  119.             });
  120.         }
  121.     }
  122. }
Add Comment
Please, Sign In to add comment