VzServiceCollectionExtensions.cs 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. using Abp.Authorization;
  2. using Microsoft.AspNetCore.Identity;
  3. using Microsoft.Extensions.DependencyInjection.Extensions;
  4. using VberZero.Authorization;
  5. using VberZero.Authorization.Roles;
  6. using VberZero.Authorization.Users;
  7. using VberZero.BaseSystem.MultiTenancy;
  8. using VberZero.BaseSystem.Roles;
  9. using VberZero.BaseSystem.Users;
  10. // ReSharper disable once CheckNamespace - This is done to add extension methods to Microsoft.Extensions.DependencyInjection namespace
  11. namespace Microsoft.Extensions.DependencyInjection;
  12. public static class VzServiceCollectionExtensions
  13. {
  14. public static VzIdentityBuilder AddAbpIdentity(this IServiceCollection services)
  15. {
  16. return services.AddAbpIdentity(setupAction: null);
  17. }
  18. public static VzIdentityBuilder AddAbpIdentity(this IServiceCollection services, Action<IdentityOptions>? setupAction)
  19. {
  20. //services.AddSingleton<IAbpZeroEntityTypes>(new AbpZeroEntityTypes
  21. //{
  22. // Tenant = typeof(Tenant),
  23. // Role = typeof(Role),
  24. // User = typeof(User)
  25. //});
  26. //AbpTenantManager
  27. services.TryAddScoped<VzTenantManager>();
  28. //AbpEditionManager
  29. //services.TryAddScoped<AbpEditionManager>();
  30. //AbpRoleManager
  31. services.TryAddScoped<VzRoleManager>();
  32. services.TryAddScoped(typeof(RoleManager<Role>), provider => provider.GetService(typeof(VzRoleManager)) ?? throw new InvalidOperationException());
  33. //AbpUserManager
  34. services.TryAddScoped<VzUserManager>();
  35. services.TryAddScoped(typeof(UserManager<User>), provider => provider.GetService(typeof(VzUserManager)) ?? throw new InvalidOperationException());
  36. //SignInManager
  37. services.TryAddScoped<VzSignInManager>();
  38. services.TryAddScoped(typeof(SignInManager<User>), provider => provider.GetService(typeof(VzSignInManager)) ?? throw new InvalidOperationException());
  39. //AbpLogInManager
  40. services.TryAddScoped<VzLogInManager>();
  41. //AbpUserClaimsPrincipalFactory
  42. services.TryAddScoped<VzUserClaimsPrincipalFactory>();
  43. services.TryAddScoped(typeof(UserClaimsPrincipalFactory<User, Role>), provider => provider.GetService(typeof(VzUserClaimsPrincipalFactory)) ?? throw new InvalidOperationException());
  44. services.TryAddScoped(typeof(IUserClaimsPrincipalFactory<User>), provider => provider.GetService(typeof(VzUserClaimsPrincipalFactory)) ?? throw new InvalidOperationException());
  45. //AbpSecurityStampValidator
  46. services.TryAddScoped<VzSecurityStampValidator>();
  47. services.TryAddScoped(typeof(SecurityStampValidator<User>), provider => provider.GetService(typeof(VzSecurityStampValidator)) ?? throw new InvalidOperationException());
  48. services.TryAddScoped(typeof(ISecurityStampValidator), provider => provider.GetService(typeof(VzSecurityStampValidator)) ?? throw new InvalidOperationException());
  49. //PermissionChecker
  50. services.TryAddScoped<VzPermissionChecker>();
  51. services.TryAddScoped(typeof(IPermissionChecker), provider => provider.GetService(typeof(VzPermissionChecker)) ?? throw new InvalidOperationException());
  52. //AbpUserStore
  53. services.TryAddScoped<VzUserStore>();
  54. services.TryAddScoped(typeof(IUserStore<User>), provider => provider.GetService(typeof(VzUserStore)) ?? throw new InvalidOperationException());
  55. //AbpRoleStore
  56. services.TryAddScoped<VzRoleStore>();
  57. services.TryAddScoped(typeof(IRoleStore<Role>), provider => provider.GetService(typeof(VzRoleStore)) ?? throw new InvalidOperationException());
  58. //AbpFeatureValueStore
  59. //services.TryAddScoped<AbpFeatureValueStore>();
  60. //services.TryAddScoped(typeof(IFeatureValueStore), provider => provider.GetService(typeof(AbpFeatureValueStore)));
  61. return new VzIdentityBuilder(services.AddIdentity<User, Role>(setupAction), typeof(Tenant));
  62. }
  63. }