示例#1
0
        public void ConfigureServices(IServiceCollection services)
        {
            ConfigureAuth(services);
            var machineKeyConfig = new XmlMachineKeyConfig(File.OpenRead("machine_config.xml"));
            MachineKeyDataProtectionOptions machinekeyOptions = new MachineKeyDataProtectionOptions
            {
                MachineKey = new MachineKey(machineKeyConfig)
            };
            MachineKeyDataProtectionProvider machineKeyDataProtectionProvider = new MachineKeyDataProtectionProvider(machinekeyOptions);
            MachineKeyDataProtector          machineKeyDataProtector          = new MachineKeyDataProtector(machinekeyOptions.MachineKey);

            IDataProtector dataProtector = machineKeyDataProtector.CreateProtector("Microsoft.Owin.Security.OAuth", "Access_Token", "v1");

            services.AddAuthentication(options =>
            {
                options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
            })
            .AddOAuthValidation(option =>
            {
                option.DataProtectionProvider = machineKeyDataProtectionProvider;
                option.AccessTokenFormat      = new OwinTicketDataFormat(new OwinTicketSerializer(3), dataProtector);
            })
            .AddOpenIdConnectServer(options => {
                options.ProviderType                = typeof(AuthorizationProvider);
                options.TokenEndpointPath           = "/token";
                options.AllowInsecureHttp           = false;
                options.ApplicationCanDisplayErrors = true;
                options.AccessTokenLifetime         = TimeSpan.FromHours(24);
                options.RefreshTokenLifetime        = TimeSpan.FromDays(30);
                options.AccessTokenFormat           = new OwinTicketDataFormat(new OwinTicketSerializer(3), dataProtector);
                options.RefreshTokenFormat          = new OwinTicketDataFormat(new OwinTicketSerializer(3), dataProtector);
            });;
            services.AddMvc();
        }
示例#2
0
        public static IMachineKeyDataProtectionBuilder AddMachineKeyDataProtection(this IServiceCollection services, Action <MachineKeyDataProtectionOptions> setupAction)
        {
            MachineKeyDataProtectionOptions options = new MachineKeyDataProtectionOptions();

            if (setupAction != null)
            {
                setupAction.Invoke(options);
            }
            MachineKeyDataProtectionProvider machineKeyDataProtectionProvider = new MachineKeyDataProtectionProvider(options);

            services.TryAddSingleton <IDataProtectionProvider>(machineKeyDataProtectionProvider);
            return(new MachineKeyDataProtectionBuilder
            {
                Options = options
            });
        }