예제 #1
0
        protected override void Load(ContainerBuilder builder)
        {
            builder.RegisterAssemblyTypes(ThisAssembly).AsImplementedInterfaces();

            builder.RegisterType <DataContext>().As <IDataContext>()
            .InstancePerLifetimeScope();

            builder.Register(ctx => ctx.Resolve <IConfiguration>().CreateOptions <MongoOptions>("mongo"))
            .AsSelf().SingleInstance();

            builder.Register(context =>
            {
                var configuration = context.Resolve <IConfiguration>();
                var issuerOptions = configuration.GetSection("jwtIssuerOptions").Get <JwtIssuerOptions>();

                var keyString = issuerOptions.Audience;
                var keyBytes  = Encoding.Unicode.GetBytes(keyString);

                var key = new JwtSigningKey(keyBytes);

                issuerOptions.SigningCredentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256Signature);

                return(new OptionsWrapper <JwtIssuerOptions>(issuerOptions));
            }).As <IOptions <JwtIssuerOptions> >().InstancePerLifetimeScope();
        }
        private JwtSigningKey ConfigureSecurityKey(JwtIssuerOptions issuerOptions)
        {
            var keyString  = issuerOptions.Audience;
            var keyBytes   = Encoding.Unicode.GetBytes(keyString);
            var signingKey = new JwtSigningKey(keyBytes);

            return(signingKey);
        }
예제 #3
0
        protected virtual SecurityKey ConfigureSecurityKey(JwtIssuerOptions issuerOptions)
        {
            //this would be more secure, value pulled from KeyVault
            var keyString  = issuerOptions.Audience;
            var keyBytes   = Encoding.UTF8.GetBytes(keyString);
            var signingKey = new JwtSigningKey(keyBytes);

            return(signingKey);
        }