public void AddSSO(IServiceCollection services) { var serviceProvider = services.BuildServiceProvider(); services.AddAuthentication(AzureADDefaults.AuthenticationScheme) .AddAzureAD(options => ConsumeAppSettingElements.GetTheAzureOptionsForSSO().Bind(options)); services.Configure <OpenIdConnectOptions>(AzureADDefaults.OpenIdScheme, options => { options.Authority = options.Authority + "/v2.0/"; options.TokenValidationParameters = new TokenValidationParameters() { NameClaimType = "name", RoleClaimType = ClaimTypes.Role }; UserLoginEvents(options, serviceProvider); }); services.AddMvc(options => { var policy = new AuthorizationPolicyBuilder() .RequireAuthenticatedUser() .Build(); options.Filters.Add(new AuthorizeFilter(policy)); }) .SetCompatibilityVersion(CompatibilityVersion.Version_3_0); }
public void AddContextElements(IServiceCollection services) { services.AddDbContext <ApplicationDbContext>(options => options.UseSqlServer( ConsumeAppSettingElements.GetConnectionStringFromAppSetting())); services.AddDefaultIdentity <User>(options => options.SignIn.RequireConfirmedAccount = false).AddRoles <IdentityRole>().AddEntityFrameworkStores <ApplicationDbContext>(); }
public static ApplicationDbContext ReturnANewContext() { var optionsBuilder = new DbContextOptionsBuilder <ApplicationDbContext>(); optionsBuilder.UseSqlServer(ConsumeAppSettingElements.GetConnectionStringFromAppSetting()); return(new ApplicationDbContext(optionsBuilder.Options)); }
protected User GetCurrentUser(UserManager <User> userManager) { if (ConsumeAppSettingElements.IsAzureActive()) { return(userManager.FindByEmailAsync(GetCurrentEmailFromAzureClaims()).Result); } else { return(userManager.FindByIdAsync(GetCurrentUserIDFromClaims()).Result); } }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { AddContextElements(services); AddViewElements(services); services.Configure <CookiePolicyOptions>(options => { // This lambda determines whether user consent for non-essential cookies is needed for a given request. options.CheckConsentNeeded = context => true; options.MinimumSameSitePolicy = SameSiteMode.None; }); if (ConsumeAppSettingElements.IsAzureActive()) { AddSSO(services); } AddManagers(services); }