コード例 #1
0
        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);
        }
コード例 #2
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>();
        }
コード例 #3
0
        public static ApplicationDbContext ReturnANewContext()
        {
            var optionsBuilder = new DbContextOptionsBuilder <ApplicationDbContext>();

            optionsBuilder.UseSqlServer(ConsumeAppSettingElements.GetConnectionStringFromAppSetting());

            return(new ApplicationDbContext(optionsBuilder.Options));
        }
コード例 #4
0
 protected User GetCurrentUser(UserManager <User> userManager)
 {
     if (ConsumeAppSettingElements.IsAzureActive())
     {
         return(userManager.FindByEmailAsync(GetCurrentEmailFromAzureClaims()).Result);
     }
     else
     {
         return(userManager.FindByIdAsync(GetCurrentUserIDFromClaims()).Result);
     }
 }
コード例 #5
0
        // 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);
        }