Skip to main content
Code Review

Return to Question

Tweeted twitter.com/StackCodeReview/status/928021188697296896
edited tags
Link
Denis
  • 8.6k
  • 5
  • 33
  • 76
Notice removed Canonical answer required by Community Bot
Bounty Ended with no winning answer by Community Bot
Notice added Canonical answer required by Rod
Bounty Started worth 50 reputation by Rod
added 43 characters in body
Source Link
Rod
  • 131
  • 1
  • 7

I configure asp.net identity using simple injectorSimple Injector

 var container = new Container();
 container.Options.DefaultScopedLifestyle = new WebRequestLifestyle();
 //Identity
 container.RegisterPerWebRequest<AppDbContext>();
 container.RegisterPerWebRequest<IUserStore<User, int>>(() => new UserStore<User, Role, int, UserLogin, UserRole, UserClaim>(new AppDbContext()));
 container.RegisterPerWebRequest<IRoleStore<Role, int>>(() => new RoleStore<Role, int, UserRole>(new AppDbContext()));
 container.RegisterPerWebRequest<AppRoleManager>();
 container.RegisterPerWebRequest<AppUserManager>();
 container.RegisterPerWebRequest<AppSignInManager>();
 container.RegisterPerWebRequest(() =>
 {
 if (HttpContext.Current != null && HttpContext.Current.Items["owin.Environment"] == null && container.IsVerifying)
 {
 return new OwinContext().Authentication;
 }
 return HttpContext.Current.GetOwinContext().Authentication;
 });

And configure a property injection for BaseControllerBaseController and my DbContextDbContext

My BaseController

 public class BaseController : Controller
 {
 public ISessionContext SessionContext { get; set; }
 }

My register in simple injector

 container.Register<ISessionContext,ClaimsSessionContext>();
 container.RegisterInitializer<BaseController>(ctrl =>
 {
 ctrl.SessionContext = container.GetInstance<ISessionContext>();
 });

My DbContextDbContext

 public class AppDbContext : IdentityDbContext<User, Role, int, UserLogin, UserRole, UserClaim>
 {
 public ISessionContext SessionContext { get; set; }
 public AppDbContext()
 : base("AppConnection")
 {
 }
 public static AppDbContext Create()
 {
 return new AppDbContext();
 }

And my simple injector register for property injection

 container.RegisterInitializer<AppDbContext>(db =>
 {
 db.SessionContext = container.GetInstance<ISessionContext>();
 });

I wonder if there would be no problem injecting SessionContext property next to my DbContext, for every request it is also instantiated

Suggestions? This ok ?

I configure asp.net identity using simple injector

 var container = new Container();
 container.Options.DefaultScopedLifestyle = new WebRequestLifestyle();
 //Identity
 container.RegisterPerWebRequest<AppDbContext>();
 container.RegisterPerWebRequest<IUserStore<User, int>>(() => new UserStore<User, Role, int, UserLogin, UserRole, UserClaim>(new AppDbContext()));
 container.RegisterPerWebRequest<IRoleStore<Role, int>>(() => new RoleStore<Role, int, UserRole>(new AppDbContext()));
 container.RegisterPerWebRequest<AppRoleManager>();
 container.RegisterPerWebRequest<AppUserManager>();
 container.RegisterPerWebRequest<AppSignInManager>();
 container.RegisterPerWebRequest(() =>
 {
 if (HttpContext.Current != null && HttpContext.Current.Items["owin.Environment"] == null && container.IsVerifying)
 {
 return new OwinContext().Authentication;
 }
 return HttpContext.Current.GetOwinContext().Authentication;
 });

And configure a property injection for BaseController and my DbContext

My BaseController

 public class BaseController : Controller
 {
 public ISessionContext SessionContext { get; set; }
 }

My register in simple injector

 container.Register<ISessionContext,ClaimsSessionContext>();
 container.RegisterInitializer<BaseController>(ctrl =>
 {
 ctrl.SessionContext = container.GetInstance<ISessionContext>();
 });

My DbContext

 public class AppDbContext : IdentityDbContext<User, Role, int, UserLogin, UserRole, UserClaim>
 {
 public ISessionContext SessionContext { get; set; }
 public AppDbContext()
 : base("AppConnection")
 {
 }
 public static AppDbContext Create()
 {
 return new AppDbContext();
 }

And my simple injector register for property injection

 container.RegisterInitializer<AppDbContext>(db =>
 {
 db.SessionContext = container.GetInstance<ISessionContext>();
 });

I wonder if there would be no problem injecting SessionContext property next to my DbContext, for every request it is also instantiated

Suggestions? This ok ?

I configure asp.net identity using Simple Injector

 var container = new Container();
 container.Options.DefaultScopedLifestyle = new WebRequestLifestyle();
 //Identity
 container.RegisterPerWebRequest<AppDbContext>();
 container.RegisterPerWebRequest<IUserStore<User, int>>(() => new UserStore<User, Role, int, UserLogin, UserRole, UserClaim>(new AppDbContext()));
 container.RegisterPerWebRequest<IRoleStore<Role, int>>(() => new RoleStore<Role, int, UserRole>(new AppDbContext()));
 container.RegisterPerWebRequest<AppRoleManager>();
 container.RegisterPerWebRequest<AppUserManager>();
 container.RegisterPerWebRequest<AppSignInManager>();
 container.RegisterPerWebRequest(() =>
 {
 if (HttpContext.Current != null && HttpContext.Current.Items["owin.Environment"] == null && container.IsVerifying)
 {
 return new OwinContext().Authentication;
 }
 return HttpContext.Current.GetOwinContext().Authentication;
 });

And configure a property injection for BaseController and my DbContext

My BaseController

 public class BaseController : Controller
 {
 public ISessionContext SessionContext { get; set; }
 }

My register in simple injector

 container.Register<ISessionContext,ClaimsSessionContext>();
 container.RegisterInitializer<BaseController>(ctrl =>
 {
 ctrl.SessionContext = container.GetInstance<ISessionContext>();
 });

My DbContext

 public class AppDbContext : IdentityDbContext<User, Role, int, UserLogin, UserRole, UserClaim>
 {
 public ISessionContext SessionContext { get; set; }
 public AppDbContext()
 : base("AppConnection")
 {
 }
 public static AppDbContext Create()
 {
 return new AppDbContext();
 }

And my simple injector register for property injection

 container.RegisterInitializer<AppDbContext>(db =>
 {
 db.SessionContext = container.GetInstance<ISessionContext>();
 });

I wonder if there would be no problem injecting SessionContext property next to my DbContext, for every request it is also instantiated

Suggestions? This ok ?

added 18 characters in body
Source Link
SirPython
  • 13.4k
  • 3
  • 38
  • 93

I configure asp.net identity using simple injector

 var container = new Container();
 container.Options.DefaultScopedLifestyle = new WebRequestLifestyle();
 //Identity
 container.RegisterPerWebRequest<AppDbContext>();
 container.RegisterPerWebRequest<IUserStore<User, int>>(() => new UserStore<User, Role, int, UserLogin, UserRole, UserClaim>(new AppDbContext()));
 container.RegisterPerWebRequest<IRoleStore<Role, int>>(() => new RoleStore<Role, int, UserRole>(new AppDbContext()));
 container.RegisterPerWebRequest<AppRoleManager>();
 container.RegisterPerWebRequest<AppUserManager>();
 container.RegisterPerWebRequest<AppSignInManager>();
 container.RegisterPerWebRequest(() =>
 {
 if (HttpContext.Current != null && HttpContext.Current.Items["owin.Environment"] == null && container.IsVerifying)
 {
 return new OwinContext().Authentication;
 }
 return HttpContext.Current.GetOwinContext().Authentication;
 });

And configure a property injection for BaseController and my DbContext

My BaseController public class BaseController : Controller { public ISessionContext SessionContext { get; set; } }

 public class BaseController : Controller
 {
 public ISessionContext SessionContext { get; set; }
 }

My register in simple injector

 container.Register<ISessionContext,ClaimsSessionContext>();
 container.RegisterInitializer<BaseController>(ctrl =>
 {
 ctrl.SessionContext = container.GetInstance<ISessionContext>();
 });

My DbContext

 public class AppDbContext : IdentityDbContext<User, Role, int, UserLogin, UserRole, UserClaim>
 {
 public ISessionContext SessionContext { get; set; }
 public AppDbContext()
 : base("AppConnection")
 {
 }
 public static AppDbContext Create()
 {
 return new AppDbContext();
 }

And my simple injector register for property injection

 container.RegisterInitializer<AppDbContext>(db =>
 {
 db.SessionContext = container.GetInstance<ISessionContext>();
 });

I wonder if there would be no problem injecting SessionContext property next to my DbContext, for every request it is also instantiated

Suggestions? This ok ?

I configure asp.net identity using simple injector

 var container = new Container();
 container.Options.DefaultScopedLifestyle = new WebRequestLifestyle();
 //Identity
 container.RegisterPerWebRequest<AppDbContext>();
 container.RegisterPerWebRequest<IUserStore<User, int>>(() => new UserStore<User, Role, int, UserLogin, UserRole, UserClaim>(new AppDbContext()));
 container.RegisterPerWebRequest<IRoleStore<Role, int>>(() => new RoleStore<Role, int, UserRole>(new AppDbContext()));
 container.RegisterPerWebRequest<AppRoleManager>();
 container.RegisterPerWebRequest<AppUserManager>();
 container.RegisterPerWebRequest<AppSignInManager>();
 container.RegisterPerWebRequest(() =>
 {
 if (HttpContext.Current != null && HttpContext.Current.Items["owin.Environment"] == null && container.IsVerifying)
 {
 return new OwinContext().Authentication;
 }
 return HttpContext.Current.GetOwinContext().Authentication;
 });

And configure a property injection for BaseController and my DbContext

My BaseController public class BaseController : Controller { public ISessionContext SessionContext { get; set; } }

My register in simple injector

 container.Register<ISessionContext,ClaimsSessionContext>();
 container.RegisterInitializer<BaseController>(ctrl =>
 {
 ctrl.SessionContext = container.GetInstance<ISessionContext>();
 });

My DbContext

 public class AppDbContext : IdentityDbContext<User, Role, int, UserLogin, UserRole, UserClaim>
 {
 public ISessionContext SessionContext { get; set; }
 public AppDbContext()
 : base("AppConnection")
 {
 }
 public static AppDbContext Create()
 {
 return new AppDbContext();
 }

And my simple injector register for property injection

 container.RegisterInitializer<AppDbContext>(db =>
 {
 db.SessionContext = container.GetInstance<ISessionContext>();
 });

I wonder if there would be no problem injecting SessionContext property next to my DbContext, for every request it is also instantiated

Suggestions? This ok ?

I configure asp.net identity using simple injector

 var container = new Container();
 container.Options.DefaultScopedLifestyle = new WebRequestLifestyle();
 //Identity
 container.RegisterPerWebRequest<AppDbContext>();
 container.RegisterPerWebRequest<IUserStore<User, int>>(() => new UserStore<User, Role, int, UserLogin, UserRole, UserClaim>(new AppDbContext()));
 container.RegisterPerWebRequest<IRoleStore<Role, int>>(() => new RoleStore<Role, int, UserRole>(new AppDbContext()));
 container.RegisterPerWebRequest<AppRoleManager>();
 container.RegisterPerWebRequest<AppUserManager>();
 container.RegisterPerWebRequest<AppSignInManager>();
 container.RegisterPerWebRequest(() =>
 {
 if (HttpContext.Current != null && HttpContext.Current.Items["owin.Environment"] == null && container.IsVerifying)
 {
 return new OwinContext().Authentication;
 }
 return HttpContext.Current.GetOwinContext().Authentication;
 });

And configure a property injection for BaseController and my DbContext

My BaseController

 public class BaseController : Controller
 {
 public ISessionContext SessionContext { get; set; }
 }

My register in simple injector

 container.Register<ISessionContext,ClaimsSessionContext>();
 container.RegisterInitializer<BaseController>(ctrl =>
 {
 ctrl.SessionContext = container.GetInstance<ISessionContext>();
 });

My DbContext

 public class AppDbContext : IdentityDbContext<User, Role, int, UserLogin, UserRole, UserClaim>
 {
 public ISessionContext SessionContext { get; set; }
 public AppDbContext()
 : base("AppConnection")
 {
 }
 public static AppDbContext Create()
 {
 return new AppDbContext();
 }

And my simple injector register for property injection

 container.RegisterInitializer<AppDbContext>(db =>
 {
 db.SessionContext = container.GetInstance<ISessionContext>();
 });

I wonder if there would be no problem injecting SessionContext property next to my DbContext, for every request it is also instantiated

Suggestions? This ok ?

Source Link
Rod
  • 131
  • 1
  • 7
Loading
lang-cs

AltStyle によって変換されたページ (->オリジナル) /